This version of the fix should be safer than the original, we still
modify the inode size in the iozero path under the page lock, but
we limit it to be less than or equal to the eventual size the write
will get the file up to. This avoids the issue of creating pages
beyond the eof which the original fix had.
Date: Wed Jul 11 13:00:39 PDT 2001
Workarea: jen.americas.sgi.com:/src/lord/xfs-linux.2.4
The following file(s) were checked into:
bonnie.engr.sgi.com:/isms/slinx/2.4.x-xfs
Modid: 2.4.x-xfs:slinx:98657a
linux/fs/xfs/xfs_rw.c - 1.340
linux/fs/xfs/xfs_inode.c - 1.321
- Add inode size to zero_eof call
linux/fs/xfs/linux/xfs_lrw.h - 1.17
- Changed prototypes for zero_eof functions
linux/fs/xfs/linux/xfs_lrw.c - 1.104
- Pass the final inode size for a write through the zero_eof paths so
that
they can pass it onto pagebuf_iozero.
linux/include/linux/page_buf.h - 1.97
- Changed prototype for pagebuf_iozero
linux/fs/pagebuf/page_buf_io.c - 1.90
- Change pagebuf_iozero to set the inode size itself, and add a new
parameter
which is the maximum offset the size can be set to. This prevents the
hole zeroing code from going out beyond the final end of file.
|