diff --git a/fs/io_uring.c b/fs/io_uring.c
index a06b562890394463183527aceb5e9b460567088b..b1ccd7072d93f0e6fb48a86cdb7a7c2734aa4965 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -7353,6 +7353,7 @@ static int __io_sqe_files_update(struct io_ring_ctx *ctx,
 			table->files[index] = file;
 			err = io_sqe_file_register(ctx, file, i);
 			if (err) {
+				table->files[index] = NULL;
 				fput(file);
 				break;
 			}