summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJens Axboe <jens.axboe@oracle.com>2007-07-16 14:41:49 +0200
committerJens Axboe <jens.axboe@oracle.com>2007-07-16 15:02:48 +0200
commitbcd4f3acbaec102e2b8000c977ecc38dcd0fe367 (patch)
tree03134513c5f47540814ee2d86cbb31523f722efa /include
parent56a68a500fcab9e3a9a49ca7fbef14230ab7d144 (diff)
downloadop-kernel-dev-bcd4f3acbaec102e2b8000c977ecc38dcd0fe367.zip
op-kernel-dev-bcd4f3acbaec102e2b8000c977ecc38dcd0fe367.tar.gz
splice: direct splicing updates ppos twice
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp> reported that he's noticed nfsd read corruption in recent kernels, and did the hard work of discovering that it's due to splice updating the file position twice. This means that the next operation would start further ahead than it should. nfsd_vfs_read() splice_direct_to_actor() while(len) { do_splice_to() [update sd->pos] -> generic_file_splice_read() [read from sd->pos] nfsd_direct_splice_actor() -> __splice_from_pipe() [update sd->pos] There's nothing wrong with the core splice code, but the direct splicing is an addon that calls both input and output paths. So it has to take care in locally caching offset so it remains correct. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud