diff --git a/fs/io_uring.c b/fs/io_uring.c
index 239cbcf439a2d5f40a0ab85a377818513d588104..80dcd4250c4c5ca562758de66c205c454ffe1b74 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -9532,6 +9532,7 @@ static int io_uring_create(unsigned entries, struct io_uring_params *p,
 	 */
 	ret = io_uring_install_fd(ctx, file);
 	if (ret < 0) {
+		io_disable_sqo_submit(ctx);
 		/* fput will clean it up */
 		fput(file);
 		return ret;