]> git.baikalelectronics.ru Git - kernel.git/commit
io_uring: make offset == -1 consistent with preadv2/pwritev2
authorJens Axboe <axboe@kernel.dk>
Wed, 26 Aug 2020 16:36:20 +0000 (10:36 -0600)
committerJens Axboe <axboe@kernel.dk>
Wed, 26 Aug 2020 16:36:20 +0000 (10:36 -0600)
commit2db0ecb4989dcd071bec1161005e9be6973e23e8
tree8b7e60a448eb19ba6a05293bec0b65a0a7a1091c
parent52a0f858f6f9a031848abbb7bdfb0bb7496e7c68
io_uring: make offset == -1 consistent with preadv2/pwritev2

The man page for io_uring generally claims were consistent with what
preadv2 and pwritev2 accept, but turns out there's a slight discrepancy
in how offset == -1 is handled for pipes/streams. preadv doesn't allow
it, but preadv2 does. This currently causes io_uring to return -EINVAL
if that is attempted, but we should allow that as documented.

This change makes us consistent with preadv2/pwritev2 for just passing
in a NULL ppos for streams if the offset is -1.

Cc: stable@vger.kernel.org # v5.7+
Reported-by: Benedikt Ames <wisp3rwind@posteo.eu>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c