X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=lib%2Fiov_iter.c;h=f2bd21b93dfca464ae24bb18c6492bd8c7f1eb88;hb=83fcad0c986d9dbbb71e8c433d6c40dc6cb810ad;hp=f0c7f1481baeefe30f14820ef9a2782a1541a175;hpb=351267d941bffeddfaa55ba05c77f971b9f67cfe;p=karo-tx-linux.git diff --git a/lib/iov_iter.c b/lib/iov_iter.c index f0c7f1481bae..f2bd21b93dfc 100644 --- a/lib/iov_iter.c +++ b/lib/iov_iter.c @@ -683,10 +683,11 @@ static void pipe_advance(struct iov_iter *i, size_t size) struct pipe_inode_info *pipe = i->pipe; struct pipe_buffer *buf; int idx = i->idx; - size_t off = i->iov_offset; + size_t off = i->iov_offset, orig_sz; if (unlikely(i->count < size)) size = i->count; + orig_sz = size; if (size) { if (off) /* make it relative to the beginning of buffer */ @@ -713,6 +714,7 @@ static void pipe_advance(struct iov_iter *i, size_t size) pipe->nrbufs--; } } + i->count -= orig_sz; } void iov_iter_advance(struct iov_iter *i, size_t size)