Re: [PATCH] fuse: clear FR_PENDING flag when moving requests out of pending queue

From: Miklos Szeredi
Date: Fri Jan 27 2017 - 04:36:14 EST


On Mon, Jan 16, 2017 at 6:57 PM, Borislav Petkov <bp@xxxxxxxxx> wrote:
> Hi,
>
> On Fri, Jan 13, 2017 at 12:13:04PM +0100, Miklos Szeredi wrote:
>> On Thu, Jan 12, 2017 at 9:04 PM, Tahsin Erdogan <tahsin@xxxxxxxxxx> wrote:
>> > fuse_abort_conn() moves requests from pending list to a temporary list
>> > before canceling them. This operation races with request_wait_answer()
>> > which also tries to remove the request after it gets a fatal signal. It
>> > checks FR_PENDING flag to determine whether the request is still in the
>> > pending list.
>> >
>> > Make fuse_abort_conn() clear FR_PENDING flag so that request_wait_answer()
>> > does not remove the request from temporary list.
>> >
>> > This bug manifests itself as a panic that looks like this:
>>
>> Perfect patch; applied and pushed.
>
> I'm seeing something similar here while the grub OS prober checks the
> other partitions. It is not always reproducible, I saw it only twice so
> far.
>
> Related?
>
> [ 568.562174] ntfs: driver 2.1.32 [Flags: R/W MODULE].
> [ 568.575436] fuse init (API version 7.26)
> [ 568.707737] general protection fault: 0000 [#1] PREEMPT SMP


Doesn't look related.

"general protection fault" doesn't tell much about what happened.
Can't even tell which address was guilty.

Do you still have the vmlinux for this? Or better yet, fs/fuse/dev.o?

Thanks,
Miklos