diff --git a/fs/io_uring.c b/fs/io_uring.c
index 66db2c46ab82439390bd4afa8e9b87d1ee895260..372be9caf3402f79ac1e5c2509d370c8bf7ea2c0 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -9708,6 +9708,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;