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)
commit0fef948363f62494d779cf9dc3c0a86ea1e5f7cd
tree8b7e60a448eb19ba6a05293bec0b65a0a7a1091c
parent00d23d516e2e7900cd1bd577c1f84794ae7ff3a7
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