From: Bernd Schubert This is a preparation for the upcoming reduced fuse-io-uring queue feature, i.e. less queues than system cores. With the reduced queue feature fuse-io-uring is marked as ready after receiving the 1st ring entry, as any available queue can now handle ring requests. At this time other queues just might be in the process of registration and then a race might happen fuse_uring_queue_fuse_req -> no queue entry registered yet list_add_tail -> fuse request gets queued So far fetching requests from the list only happened from FUSE_IO_URING_CMD_COMMIT_AND_FETCH, but without new requests on the same queue, it would actually never send requests from that queue - the request would be stuck. Signed-off-by: Bernd Schubert --- fs/fuse/dev_uring.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/fs/fuse/dev_uring.c b/fs/fuse/dev_uring.c index 1d1305d38efa07641128a865aec1745d2e040b93..9dcbc39531f0e019e5abf58a29cdf6c75fafdca1 100644 --- a/fs/fuse/dev_uring.c +++ b/fs/fuse/dev_uring.c @@ -1196,6 +1196,8 @@ static int fuse_uring_register(struct io_uring_cmd *cmd, fuse_uring_do_register(ent, cmd, issue_flags); + fuse_uring_next_fuse_req(ent, queue, issue_flags); + return 0; } -- 2.43.0