io_uring/advise: support 64-bit lengths
authorJens Axboe <axboe@kernel.dk>
Sun, 16 Jun 2024 02:47:14 +0000 (20:47 -0600)
committerJens Axboe <axboe@kernel.dk>
Sun, 16 Jun 2024 20:54:55 +0000 (14:54 -0600)
commit3b87184f7eff27fef7d7ee18b65f173152e1bb81
tree8d70e414466beba3b9826633e7dba137656fc908
parent11d194669271642a5d1bfff6c8011478309e7849
io_uring/advise: support 64-bit lengths

The existing fadvise/madvise support only supports 32-bit lengths. Add
support for 64-bit lengths, enabled by the application setting sqe->off
rather than sqe->len for the length. If sqe->len is set, then that is
used as the 32-bit length. If sqe->len is zero, then sqe->off is read
for full 64-bit support.

Older kernels will return -EINVAL if 64-bit support isn't available.

Fixes: 4840e418c2fc ("io_uring: add IORING_OP_FADVISE")
Fixes: c1ca757bd6f4 ("io_uring: add IORING_OP_MADVISE")
Reported-by: Stefan <source@s.muenzel.net>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
io_uring/advise.c