diff options
author | Jan Kara <jack@suse.cz> | 2016-12-21 14:48:18 +0100 |
---|---|---|
committer | Jan Kara <jack@suse.cz> | 2017-04-10 17:37:36 +0200 |
commit | f09b04a03e0239f65bd964a1de758e53cf6349e8 (patch) | |
tree | dc8f9b75eb2f98fee22d48e516a3734035868c69 /fs/notify/fsnotify.h | |
parent | 6b3f05d24d355f50f3d9814304650fcab0efb482 (diff) | |
download | linux-stable-f09b04a03e0239f65bd964a1de758e53cf6349e8.tar.gz linux-stable-f09b04a03e0239f65bd964a1de758e53cf6349e8.tar.bz2 linux-stable-f09b04a03e0239f65bd964a1de758e53cf6349e8.zip |
fsnotify: Remove special handling of mark destruction on group shutdown
Currently we queue all marks for destruction on group shutdown and then
destroy them from fsnotify_destroy_group() instead from a worker thread
which is the usual path. However worker can already be processing some
list of marks to destroy so this does not make 100% all marks are really
destroyed by the time group is shut down. This isn't a big problem as
each mark holds group reference and thus group stays partially alive
until all marks are really freed but there's no point in complicating
our lives - just wait for the delayed work to be finished instead.
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.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/notify/fsnotify.h b/fs/notify/fsnotify.h index 72050b75ca8c..2a92dc06198c 100644 --- a/fs/notify/fsnotify.h +++ b/fs/notify/fsnotify.h @@ -36,10 +36,8 @@ static inline void fsnotify_clear_marks_by_mount(struct vfsmount *mnt) } /* prepare for freeing all marks associated with given group */ extern void fsnotify_detach_group_marks(struct fsnotify_group *group); -/* - * wait for fsnotify_mark_srcu period to end and free all marks in destroy_list - */ -extern void fsnotify_mark_destroy_list(void); +/* Wait until all marks queued for destruction are destroyed */ +extern void fsnotify_wait_marks_destroyed(void); /* * update the dentry->d_flags of all of inode's children to indicate if inode cares |