public inbox for io-uring@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] io_uring: clean up io_uring_register_get_file()
@ 2025-01-16  2:53 Pavel Begunkov
  2025-01-16 13:09 ` lizetao
  2025-01-16 14:13 ` Jens Axboe
  0 siblings, 2 replies; 5+ messages in thread
From: Pavel Begunkov @ 2025-01-16  2:53 UTC (permalink / raw)
  To: io-uring; +Cc: asml.silence

Make it always reference the returned file. It's safer, especially with
unregistrations happening under it. And it makes the api cleaner with no
conditional clean ups by the caller.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
---
 io_uring/register.c | 6 ++++--
 io_uring/rsrc.c     | 4 ++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/io_uring/register.c b/io_uring/register.c
index 5e48413706ac..a93c979c2f38 100644
--- a/io_uring/register.c
+++ b/io_uring/register.c
@@ -841,6 +841,8 @@ struct file *io_uring_register_get_file(unsigned int fd, bool registered)
 			return ERR_PTR(-EINVAL);
 		fd = array_index_nospec(fd, IO_RINGFD_REG_MAX);
 		file = tctx->registered_rings[fd];
+		if (file)
+			get_file(file);
 	} else {
 		file = fget(fd);
 	}
@@ -907,7 +909,7 @@ SYSCALL_DEFINE4(io_uring_register, unsigned int, fd, unsigned int, opcode,
 	trace_io_uring_register(ctx, opcode, ctx->file_table.data.nr,
 				ctx->buf_table.nr, ret);
 	mutex_unlock(&ctx->uring_lock);
-	if (!use_registered_ring)
-		fput(file);
+
+	fput(file);
 	return ret;
 }
diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c
index 964a47c8d85e..792c22b6f2d4 100644
--- a/io_uring/rsrc.c
+++ b/io_uring/rsrc.c
@@ -1073,7 +1073,7 @@ int io_register_clone_buffers(struct io_ring_ctx *ctx, void __user *arg)
 	if (IS_ERR(file))
 		return PTR_ERR(file);
 	ret = io_clone_buffers(ctx, file->private_data, &buf);
-	if (!registered_src)
-		fput(file);
+
+	fput(file);
 	return ret;
 }
-- 
2.47.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2025-01-17  1:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-01-16  2:53 [PATCH 1/1] io_uring: clean up io_uring_register_get_file() Pavel Begunkov
2025-01-16 13:09 ` lizetao
2025-01-16 14:10   ` Jens Axboe
2025-01-17  1:40     ` lizetao
2025-01-16 14:13 ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox