Module Name: src Committed By: bouyer Date: Sun Feb 7 17:12:40 UTC 2010
Modified Files: src/sys/ufs/ext2fs: ext2fs_inode.c src/sys/ufs/ffs: ffs_inode.c src/sys/ufs/lfs: lfs_inode.c src/sys/ufs/ufs: ufs_inode.c Log Message: - ufs_balloc_range(): on error, only PG_RELEASED the pages that were allocated to extend the file to the new size. Releasing all pages may release pages that contains previously-written data not yet flushed to disk. Should fix PR kern/35704 - {ffs,lfs,ext2fs}_truncate(): Even if the inode's size is the same as the new length, call uvm_vnp_setsize(). *_truncate() may have been called by *_write() in the error path (e.g. block allocation failure because of quota of file system full), and at this point v_writesize has been set to the desired size of the file and not reverted to the old size. Not adjusting v_writesize to the real size cause genfs_do_io() to write to disk past the real end of the file. To generate a diff of this commit: cvs rdiff -u -r1.70 -r1.71 src/sys/ufs/ext2fs/ext2fs_inode.c cvs rdiff -u -r1.103 -r1.104 src/sys/ufs/ffs/ffs_inode.c cvs rdiff -u -r1.120 -r1.121 src/sys/ufs/lfs/lfs_inode.c cvs rdiff -u -r1.78 -r1.79 src/sys/ufs/ufs/ufs_inode.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.