]> 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)
commit31e1fa2fe6243c66140701978c206269ac3cd9ad
tree0ef3f13917b04b9b11ff60f9706b068f4c024a03
parent34a3249ab33a1690f58cd6e91a0208887337d3e0
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: f108d40c9a72 "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