iov_iter: fix page_copy_sane for compound pages
authorPetar Penkov <ppenkov@google.com>
Tue, 29 Aug 2017 18:20:32 +0000 (11:20 -0700)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 21 Sep 2017 03:27:48 +0000 (23:27 -0400)
commita90bcb86ae700c12432446c4aa1819e7b8e172ec
treef172eb5b81e958457422d74e66587bf0071ddebe
parent2bd6bf03f4c1c59381d62c61d03f6cc3fe71f66e
iov_iter: fix page_copy_sane for compound pages

Issue is that if the data crosses a page boundary inside a compound
page, this check will incorrectly trigger a WARN_ON.

To fix this, compute the order using the head of the compound page and
adjust the offset to be relative to that head.

Fixes: 72e809ed81ed ("iov_iter: sanity checks for copy to/from page
primitives")

Signed-off-by: Petar Penkov <ppenkov@google.com>
CC: Al Viro <viro@zeniv.linux.org.uk>
CC: Eric Dumazet <edumazet@google.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
lib/iov_iter.c