shmem: minor fixes to splice-read implementation
authorHugh Dickins <hughd@google.com>
Sun, 23 Jul 2023 21:05:54 +0000 (14:05 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 27 Jul 2023 20:07:03 +0000 (13:07 -0700)
commitfa598952fac059054316dccb2213478ccb81a0d1
treee1af0830fa7eb13a73c2688784a399704a9380a1
parent253e5df8b8f0145adb090f57c6f4e6efa52d738e
shmem: minor fixes to splice-read implementation

HWPoison: my reading of folio_test_hwpoison() is that it only tests the
head page of a large folio, whereas splice_folio_into_pipe() will splice
as much of the folio as it can: so for safety we should also check the
has_hwpoisoned flag, set if any of the folio's pages are hwpoisoned.
(Perhaps that ugliness can be improved at the mm end later.)

The call to splice_zeropage_into_pipe() risked overrunning past EOF: ask
it for "part" not "len".

Link: https://lkml.kernel.org/r/32c72c9c-72a8-115f-407d-f0148f368@google.com
Fixes: bd194b187115 ("shmem: Implement splice-read")
Signed-off-by: Hugh Dickins <hughd@google.com>
Reviewed-by: David Howells <dhowells@redhat.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/shmem.c