Fixed delayed_blks assert failure during umount. The delayed_blks was caused by
ENOSPC but not
Rreclaimed by xfs_release or xfs_inactive. The fix changed the condition in
xfs_release and
xfs_inactive to invoke xfs_inactive_free_eofblocks for this special case,
changed
xfs_inactive_free_eofblocks to clean the delayed blks after eof. It also
changed xfs_write to
set correct eof when ENOSPC occurs.
Date: Thu Dec 15 13:25:27 PST 2005
Workarea: attica.americas.sgi.com:/data/lwork/attica3/yingping/xfs-kern
Inspected by: nathans
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/xfs-kern/xfs-linux
Modid: xfs-linux:xfs-kern:203788a
xfs_vnodeops.c - 1.662 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/xfs_vnodeops.c.diff?r1=text&tr1=1.662&r2=text&tr2=1.661&f=h
- The changes allow xfs_release and xfs_inactive to invoke
xfs_inactive_free_eofblocks even the size is 0 but there exist delayed_blks
which may occur when the file system run out of space. The changes in
xfs_inactive_free_eofblocks allow to free space for delayed blocks afer eof.
linux-2.6/xfs_lrw.c - 1.232 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.6/xfs_lrw.c.diff?r1=text&tr1=1.232&r2=text&tr2=1.231&f=h
linux-2.4/xfs_lrw.c - 1.227 - changed
http://oss.sgi.com/cgi-bin/cvsweb.cgi/xfs-linux/linux-2.4/xfs_lrw.c.diff?r1=text&tr1=1.227&r2=text&tr2=1.226&f=h
- This change make the file size intact when a write request was not
successful due to ENOSPC.
|