pipe: Fix iteration end check in fuse_dev_splice_write()
Fix the iteration end check in fuse_dev_splice_write(). The iterator
position can only be compared with == or != since wrappage may be involved.
Fixes: 8cefc107ca
("pipe: Use head and tail pointers for the ring, not cursor and length")
Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
43a2898631
Коммит
76f6777c9c
|
@ -1965,7 +1965,7 @@ static ssize_t fuse_dev_splice_write(struct pipe_inode_info *pipe,
|
|||
|
||||
nbuf = 0;
|
||||
rem = 0;
|
||||
for (idx = tail; idx < head && rem < len; idx++)
|
||||
for (idx = tail; idx != head && rem < len; idx++)
|
||||
rem += pipe->bufs[idx & mask].len;
|
||||
|
||||
ret = -EINVAL;
|
||||
|
|
Загрузка…
Ссылка в новой задаче