diff options
Diffstat (limited to 'fs/notify/group.c')
-rw-r--r-- | fs/notify/group.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/fs/notify/group.c b/fs/notify/group.c index 656c534ffb66..34fccbd2809c 100644 --- a/fs/notify/group.c +++ b/fs/notify/group.c | |||
@@ -77,12 +77,15 @@ void fsnotify_recalc_group_mask(struct fsnotify_group *group) | |||
77 | fsnotify_recalc_global_mask(); | 77 | fsnotify_recalc_global_mask(); |
78 | } | 78 | } |
79 | 79 | ||
80 | static void fsnotify_add_group(struct fsnotify_group *group) | 80 | void fsnotify_add_inode_group(struct fsnotify_group *group) |
81 | { | 81 | { |
82 | BUG_ON(!mutex_is_locked(&fsnotify_grp_mutex)); | 82 | mutex_lock(&fsnotify_grp_mutex); |
83 | 83 | ||
84 | if (!group->on_inode_group_list) | ||
85 | list_add_tail_rcu(&group->inode_group_list, &fsnotify_inode_groups); | ||
84 | group->on_inode_group_list = 1; | 86 | group->on_inode_group_list = 1; |
85 | list_add_tail_rcu(&group->inode_group_list, &fsnotify_inode_groups); | 87 | |
88 | mutex_unlock(&fsnotify_grp_mutex); | ||
86 | } | 89 | } |
87 | 90 | ||
88 | /* | 91 | /* |
@@ -188,22 +191,17 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops) | |||
188 | */ | 191 | */ |
189 | atomic_set(&group->num_marks, 1); | 192 | atomic_set(&group->num_marks, 1); |
190 | 193 | ||
191 | |||
192 | mutex_init(&group->notification_mutex); | 194 | mutex_init(&group->notification_mutex); |
193 | INIT_LIST_HEAD(&group->notification_list); | 195 | INIT_LIST_HEAD(&group->notification_list); |
194 | init_waitqueue_head(&group->notification_waitq); | 196 | init_waitqueue_head(&group->notification_waitq); |
195 | group->max_events = UINT_MAX; | 197 | group->max_events = UINT_MAX; |
196 | 198 | ||
199 | INIT_LIST_HEAD(&group->inode_group_list); | ||
200 | |||
197 | spin_lock_init(&group->mark_lock); | 201 | spin_lock_init(&group->mark_lock); |
198 | INIT_LIST_HEAD(&group->mark_entries); | 202 | INIT_LIST_HEAD(&group->mark_entries); |
199 | 203 | ||
200 | group->ops = ops; | 204 | group->ops = ops; |
201 | 205 | ||
202 | mutex_lock(&fsnotify_grp_mutex); | ||
203 | |||
204 | fsnotify_add_group(group); | ||
205 | |||
206 | mutex_unlock(&fsnotify_grp_mutex); | ||
207 | |||
208 | return group; | 206 | return group; |
209 | } | 207 | } |