Re: [PATCH v6 1/6] fuse: decouple fuse_ring creation from ent registration

Miklos Szeredi <[email protected]> Fri, 17 Jul 2026 11:32:42 +0200
Newsgroups dev.linux.lists.fuse-devel
Message-ID <CAJfpegsNb=1P7Vh+DVfg3Ve9T8ggHxi1Y-ZhqiQ6R1bbnCTHGA@mail.gmail.com>
On Thu, 16 Jul 2026 at 19:59, Joanne Koong <[email protected]> wrote:
>
> Currently, the connection's fuse_ring is created lazily on the first
> FUSE_IO_URING_CMD_REGISTER command. A server registers entries from one
> thread per queue (one per CPU) and those threads issue their first
> REGISTER command concurrently. They then race to create the single
> per-connection fuse_ring, which required open-coded handling in
> fuse_uring_create() to detect and protect against concurrent creations.
>
> Decouple fuse_ring creation from ent registration and move it to
> FUSE_INIT reply processing after a server has negotiated and set
> FUSE_OVER_IO_URING. The ring is published before the connection is
> marked initialized. fuse_uring_register() no longer creates the ring and
> it instead uses the ring set up at init time.

What about if the fuse ring is not yet set up?  Should
fuse_uring_register() wait in that case?

Thanks,
Miklos