]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
xfs: avoid direct I/O write vs buffered I/O race
authorChristoph Hellwig <hch@infradead.org>
Sat, 19 Nov 2011 18:13:41 +0000 (13:13 -0500)
committerGreg Kroah-Hartman <gregkh@suse.de>
Sat, 26 Nov 2011 17:10:05 +0000 (09:10 -0800)
commit3da97f9710ca1df6cebe2558896dae3ed62337be
tree84f34c67c903c1dcbbb2fec9277835d957387f2e
parent16ba92e591d31d3213956e581867f46892648038
xfs: avoid direct I/O write vs buffered I/O race

commit c58cb165bd44de8aaee9755a144136ae743be116 upstream.

Currently a buffered reader or writer can add pages to the pagecache
while we are waiting for the iolock in xfs_file_dio_aio_write.  Prevent
this by re-checking mapping->nrpages after we got the iolock, and if
nessecary upgrade the lock to exclusive mode.  To simplify this a bit
only take the ilock inside of xfs_file_aio_write_checks.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Alex Elder <aelder@sgi.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
fs/xfs/linux-2.6/xfs_file.c