diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2024-12-20 13:32:43 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2024-12-20 13:32:43 -0800 |
commit | 7c05bd92305d13e18945270b7bfaf300d53f6ed2 (patch) | |
tree | e8fe01e015651418a311726c13a5df1b83d90f97 /include/linux | |
parent | e9b8ffafd20ad21357a789cc58ffaa162b3ad074 (diff) | |
parent | dbd2ca9367eb19bc5e269b8c58b0b1514ada9156 (diff) | |
download | lwn-7c05bd92305d13e18945270b7bfaf300d53f6ed2.tar.gz lwn-7c05bd92305d13e18945270b7bfaf300d53f6ed2.zip |
Merge tag 'io_uring-6.13-20241220' of git://git.kernel.dk/linux
Pull io_uring fixes from Jens Axboe:
- Fix for a file ref leak for registered ring fds
- Turn the ->timeout_lock into a raw spinlock, as it nests under the
io-wq lock which is a raw spinlock as it's called from the scheduler
side
- Limit ring resizing to DEFER_TASKRUN for now. We will broaden this in
the future, but for now, ensure that it's only feasible on rings with
a single user
- Add sanity check for io-wq enqueuing
* tag 'io_uring-6.13-20241220' of git://git.kernel.dk/linux:
io_uring: check if iowq is killed before queuing
io_uring/register: limit ring resizing to DEFER_TASKRUN
io_uring: Fix registered ring file refcount leak
io_uring: make ctx->timeout_lock a raw spinlock
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/io_uring.h | 4 | ||||
-rw-r--r-- | include/linux/io_uring_types.h | 2 |
2 files changed, 2 insertions, 4 deletions
diff --git a/include/linux/io_uring.h b/include/linux/io_uring.h index e123d5e17b52..85fe4e6b275c 100644 --- a/include/linux/io_uring.h +++ b/include/linux/io_uring.h @@ -15,10 +15,8 @@ bool io_is_uring_fops(struct file *file); static inline void io_uring_files_cancel(void) { - if (current->io_uring) { - io_uring_unreg_ringfd(); + if (current->io_uring) __io_uring_cancel(false); - } } static inline void io_uring_task_cancel(void) { diff --git a/include/linux/io_uring_types.h b/include/linux/io_uring_types.h index 011860ade268..fd4cdb0860a2 100644 --- a/include/linux/io_uring_types.h +++ b/include/linux/io_uring_types.h @@ -345,7 +345,7 @@ struct io_ring_ctx { /* timeouts */ struct { - spinlock_t timeout_lock; + raw_spinlock_t timeout_lock; struct list_head timeout_list; struct list_head ltimeout_list; unsigned cq_last_tm_flush; |