]> git.baikalelectronics.ru Git - kernel.git/commit
fix iov_iter_advance() for ITER_PIPE
authorAbhi Das <adas@redhat.com>
Thu, 17 Nov 2016 03:44:23 +0000 (21:44 -0600)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 17 Nov 2016 05:00:48 +0000 (00:00 -0500)
commit4b0f1eb8424e6d7c0ef0e371067f6b78c7a1123e
treebe2ca455a6186b86a08e3ab1c22d49748cc6ed75
parentc337826d7b94d46c4a53ea35f9ad5091ca004aa1
fix iov_iter_advance() for ITER_PIPE

iov_iter_advance() needs to decrement iter->count by the number of
bytes we'd moved beyond.  Normal flavours do that, but ITER_PIPE
doesn't and ITER_PIPE generic_file_read_iter() for O_DIRECT files
ends up with a bogus fallback to page cache read, resulting in incorrect
values for file offset and bytes read.

Signed-off-by: Abhi Das <adas@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
lib/iov_iter.c