aboutsummaryrefslogtreecommitdiff
path: root/block/bsg.c
diff options
context:
space:
mode:
authorMiklos Szeredi <mszeredi@suse.cz>2008-07-04 09:35:17 +0200
committerJens Axboe <jens.axboe@oracle.com>2008-07-04 09:52:14 +0200
commit32502b8413a77b54b9e19809404109590c32dfb7 (patch)
treec84b87396be32d529b9902a7261b772b1d919e8b /block/bsg.c
parent8b3d3567f72aa61d5d6f4ce89d289b154e1ea866 (diff)
splice: fix generic_file_splice_read() race with page invalidation
If a page was invalidated during splicing from file to a pipe, then generic_file_splice_read() could return a short or zero count. This manifested itself in rare I/O errors seen on nfs exported fuse filesystems. This is because nfsd uses splice_direct_to_actor() to read files, and fuse uses invalidate_inode_pages2() to invalidate stale data on open. Fix by redoing the page find/create if it was found to be truncated (invalidated). Signed-off-by: Miklos Szeredi <mszeredi@suse.cz> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/bsg.c')
0 files changed, 0 insertions, 0 deletions