diff --git a/fs/io_uring.c b/fs/io_uring.c
index 5ca2da6648d077ab9e53f60a0ab3fca4166cc479..7f10af02c3d144712907371c20180a3cb1eb2c54 100644
--- a/fs/io_uring.c
+++ b/fs/io_uring.c
@@ -3518,7 +3518,7 @@ static void io_sync_file_range_finish(struct io_wq_work **workptr)
 	if (io_req_cancelled(req))
 		return;
 	__io_sync_file_range(req);
-	io_put_req(req); /* put submission ref */
+	io_steal_work(req, workptr);
 }
 
 static int io_sync_file_range(struct io_kiocb *req, bool force_nonblock)