]> git.baikalelectronics.ru Git - kernel.git/commit
nfsd_splice_actor(): handle compound pages
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 10 Sep 2022 21:14:02 +0000 (22:14 +0100)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 13 Sep 2022 02:38:36 +0000 (22:38 -0400)
commit7c3ef140abb4647f0a4ade4f0bda220cd4887965
tree0ef3f13917b04b9b11ff60f9706b068f4c024a03
parent3d7dcb2c5450a57f60c448f42be48fdfe456bfdf
nfsd_splice_actor(): handle compound pages

pipe_buffer might refer to a compound page (and contain more than a PAGE_SIZE
worth of data).  Theoretically it had been possible since way back, but
nfsd_splice_actor() hadn't run into that until copy_page_to_iter() change.
Fortunately, the only thing that changes for compound pages is that we
need to stuff each relevant subpage in and convert the offset into offset
in the first subpage.

Acked-by: Chuck Lever <chuck.lever@oracle.com>
Tested-by: Benjamin Coddington <bcodding@redhat.com>
Fixes: 33661370af62 "copy_page_to_iter(): don't split high-order page in case of ITER_PIPE"
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/nfsd/vfs.c