Re: [PATCH 1/2] fuse: set FR_PENDING under fiq->lock in fuse_chan_resend()
Miklos Szeredi <[email protected]>
| Newsgroups | dev.linux.lists.fuse-devel,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAJfpegt=OFdZ6mhesKOhpf_AHNM0f=rATsMsvmqTzuovAvGJDA@mail.gmail.com> |
On Tue, 4 Aug 2026 at 11:18, Jun Yang <[email protected]> wrote: > Publish FR_PENDING under fiq->lock, immediately before the splice that > actually puts the requests on fiq->pending, and fold the intr_entry cleanup > into the same locked walk. A waiter that arrives while the requests are > still on the stack now sees FR_PENDING clear, so fuse_remove_pending_req() > returns false and it falls through to wait_event(FR_FINISHED) -- the same > handling a request already handed to userspace gets. The !fiq->connected > path no longer needs to clear the bit, because it was never set. Thanks for the report and patch. Commit ed9c881f3b49 ("fuse: fix race between interrupt and resend") found in git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git #for-next contains a very similar fix. Thanks, Miklos