io_uring: use __kernel_timespec in timeout ABI
authorArnd Bergmann <arnd@arndb.de>
Tue, 1 Oct 2019 15:53:29 +0000 (09:53 -0600)
committerJens Axboe <axboe@kernel.dk>
Tue, 1 Oct 2019 15:53:29 +0000 (09:53 -0600)
commitbdf200731145f07a6127cb16753e2e8fdc159cf4
tree1aaf15565a1b5d9fa7167842620d17c01c4666f3
parent85560117d00f5d528e928918b8f61cadcefff98b
io_uring: use __kernel_timespec in timeout ABI

All system calls use struct __kernel_timespec instead of the old struct
timespec, but this one was just added with the old-style ABI. Change it
now to enforce the use of __kernel_timespec, avoiding ABI confusion and
the need for compat handlers on 32-bit architectures.

Any user space caller will have to use __kernel_timespec now, but this
is unambiguous and works for any C library regardless of the time_t
definition. A nicer way to specify the timeout would have been a less
ambiguous 64-bit nanosecond value, but I suppose it's too late now to
change that as this would impact both 32-bit and 64-bit users.

Fixes: 5262f567987d ("io_uring: IORING_OP_TIMEOUT support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c