• Eric Paris's avatar
    fanotify: flush outstanding perm requests on group destroy · 2eebf582
    Eric Paris authored
    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.
    Reported-by: default avatarAndreas Gruenbacher <agruen@suse.de>
    Cc: Andreas Gruenbacher <agruen@suse.de>
    Signed-off-by: default avatarEric Paris <eparis@redhat.com>
    2eebf582
fanotify_user.c 18.9 KB