summaryrefslogtreecommitdiff
path: root/fs/notify/fsnotify.h
diff options
context:
space:
mode:
authorJan Kara <jack@suse.cz>2016-11-10 18:02:11 +0300
committerJan Kara <jack@suse.cz>2017-04-10 18:37:36 +0300
commitabc77577a669f424c5d0c185b9994f2621c52aa4 (patch)
treea7e18bc2c8229a8a634d899445c33958f8967876 /fs/notify/fsnotify.h
parentf09b04a03e0239f65bd964a1de758e53cf6349e8 (diff)
downloadlinux-abc77577a669f424c5d0c185b9994f2621c52aa4.tar.xz
fsnotify: Provide framework for dropping SRCU lock in ->handle_event
fanotify wants to drop fsnotify_mark_srcu lock when waiting for response from userspace so that the whole notification subsystem is not blocked during that time. This patch provides a framework for safely getting mark reference for a mark found in the object list which pins the mark in that list. We can then drop fsnotify_mark_srcu, wait for userspace response and then safely continue iteration of the object list once we reaquire fsnotify_mark_srcu. Reviewed-by: Miklos Szeredi <mszeredi@redhat.com> Reviewed-by: Amir Goldstein <amir73il@gmail.com> Signed-off-by: Jan Kara <jack@suse.cz>
Diffstat (limited to 'fs/notify/fsnotify.h')
-rw-r--r--fs/notify/fsnotify.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/notify/fsnotify.h b/fs/notify/fsnotify.h
index 2a92dc06198c..86383c7865c0 100644
--- a/fs/notify/fsnotify.h
+++ b/fs/notify/fsnotify.h
@@ -8,6 +8,12 @@
#include "../mount.h"
+struct fsnotify_iter_info {
+ struct fsnotify_mark *inode_mark;
+ struct fsnotify_mark *vfsmount_mark;
+ int srcu_idx;
+};
+
/* destroy all events sitting in this groups notification queue */
extern void fsnotify_flush_notify(struct fsnotify_group *group);