Re: [PATCH 1/4] fanotify: flush outstanding perm requests on group destroy

From: Tvrtko Ursulin
Date: Tue Aug 24 2010 - 04:49:55 EST


On Tuesday 24 Aug 2010 02:13:11 Andreas Gruenbacher wrote:
> On Monday 23 August 2010 02:37:07 Eric Paris wrote:
> > When an fanotify listener is closing it may cause a deadlock between the
> > listener and the original task doing an fs operation. If the original
> > task is waiting for a permissions response it will be holding the srcu
> > lock. The listener cannot clean up and exit until after that srcu lock
> > is syncronized. Thus deadlock. The fix introduced here is to stop
> > accepting new permissions events when a listener is shutting down and to
> > grant permission for all outstanding events. Thus the original task
> > will eventually release the srcu lock and the listener can complete
> > shutdown.
>
> This seems to work now.
>
> The one remaining issue is that processes blocked on perm events cannot be
> killed even with SIGKILL. I don't know how hard it will be to fix this.

I think just switching to interruptible sleep in
fanotify_get_response_from_access should be fine. And it should probably deny
the current event when signal is received.

Tvrtko

Sophos Plc, The Pentagon, Abingdon Science Park, Abingdon, OX14 3YP, United Kingdom.
Company Reg No 2096520. VAT Reg No GB 348 3873 20.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/