linux/fs/notify
Jan Kara 05f0e38724 fanotify: Release SRCU lock when waiting for userspace response
When userspace task processing fanotify permission events screws up and
does not respond, fsnotify_mark_srcu SRCU is held indefinitely which
causes further hangs in the whole notification subsystem. Although we
cannot easily solve the problem of operations blocked waiting for
response from userspace, we can at least somewhat localize the damage by
dropping SRCU lock before waiting for userspace response and reacquiring
it when userspace responds.

Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
Reviewed-by: Amir Goldstein <amir73il@gmail.com>
Signed-off-by: Jan Kara <jack@suse.cz>
2017-04-10 17:37:36 +02:00
..
dnotify fsnotify: Pass fsnotify_iter_info into handle_event handler 2017-04-10 17:37:36 +02:00
fanotify fanotify: Release SRCU lock when waiting for userspace response 2017-04-10 17:37:36 +02:00
inotify fsnotify: Pass fsnotify_iter_info into handle_event handler 2017-04-10 17:37:36 +02:00
fdinfo.c fsnotify: Move object pointer to fsnotify_mark_connector 2017-04-10 17:37:35 +02:00
fdinfo.h fs: Convert show_fdinfo functions to void 2014-11-05 14:13:23 -05:00
fsnotify.c fsnotify: Pass fsnotify_iter_info into handle_event handler 2017-04-10 17:37:36 +02:00
fsnotify.h fsnotify: Provide framework for dropping SRCU lock in ->handle_event 2017-04-10 17:37:36 +02:00
group.c fsnotify: Provide framework for dropping SRCU lock in ->handle_event 2017-04-10 17:37:36 +02:00
inode_mark.c fsnotify: Free fsnotify_mark_connector when there is no mark attached 2017-04-10 17:37:35 +02:00
Kconfig rcu: Make SRCU optional by using CONFIG_SRCU 2015-01-06 11:04:29 -08:00
Makefile fs, notify: add procfs fdinfo helper 2012-12-17 17:15:28 -08:00
mark.c fsnotify: Provide framework for dropping SRCU lock in ->handle_event 2017-04-10 17:37:36 +02:00
notification.c fsnotify: clean up spinlock assertions 2016-10-07 18:46:26 -07:00
vfsmount_mark.c fsnotify: Free fsnotify_mark_connector when there is no mark attached 2017-04-10 17:37:35 +02:00