kernel-ark/fs/xfs/linux-2.6
Christoph Hellwig 6ab455eeaf [XFS] Fix memory corruption with small buffer reads
When we have multiple buffers in a single page for a blocksize == pagesize
filesystem we might overwrite the page contents if two callers hit it
shortly after each other. To prevent that we need to keep the page locked
until I/O is completed and the page marked uptodate.

Thanks to Eric Sandeen for triaging this bug and finding a reproducible
testcase and Dave Chinner for additional advice.

This should fix kernel.org bz #10421.

Tested-by: Eric Sandeen <sandeen@sandeen.net>

SGI-PV: 981813
SGI-Modid: xfs-linux-melb:xfs-kern:31173a

Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: David Chinner <dgc@sgi.com>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
2008-05-23 18:12:49 +10:00
..
kmem.c
kmem.h
mrlock.h
mutex.h
sema.h
sv.h
time.h
xfs_aops.c
xfs_aops.h
xfs_buf.c [XFS] Fix memory corruption with small buffer reads 2008-05-23 18:12:49 +10:00
xfs_buf.h [XFS] Fix memory corruption with small buffer reads 2008-05-23 18:12:49 +10:00
xfs_cred.h
xfs_dmapi_priv.h
xfs_export.c
xfs_export.h
xfs_file.c [XFS] Fix fsync() b0rkage. 2008-05-23 15:25:25 +10:00
xfs_fs_subr.c
xfs_fs_subr.h
xfs_globals.c
xfs_globals.h
xfs_ioctl32.c
xfs_ioctl32.h
xfs_ioctl.c
xfs_iops.c
xfs_iops.h
xfs_linux.h
xfs_lrw.c
xfs_lrw.h
xfs_stats.c
xfs_stats.h
xfs_super.c
xfs_super.h
xfs_sysctl.c
xfs_sysctl.h
xfs_version.h
xfs_vfs.h
xfs_vnode.c
xfs_vnode.h [XFS] Fix fsync() b0rkage. 2008-05-23 15:25:25 +10:00