I confirm that the patch fixes the issue I was seeing. Thanks a lot! On Wed, Feb 12, 2020 at 8:36 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Wed, Feb 12, 2020 at 10:38 AM Michael Stapelberg > <michael+lkml@xxxxxxxxxxxxx> wrote: > > > > Unfortunately not: when I change the code like so: > > > > bool async; > > uint32_t opcode_early = req->args->opcode; > > > > if (test_and_set_bit(FR_FINISHED, &req->flags)) > > goto put_request; > > > > async = req->args->end; > > > > …gdb only reports: > > > > (gdb) bt > > #0 0x000000a700000001 in ?? () > > #1 0xffffffff8137fc99 in fuse_copy_finish (cs=0x20000ffffffff) at > > fs/fuse/dev.c:681 > > Backtrace stopped: previous frame inner to this frame (corrupt stack?) > > > > But maybe that’s a hint in and of itself? > > Yep, it's a stack use after return bug. Attached patch should fix > it, though I haven't tested it. > > Thanks, > Miklos