diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/notify/mark.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/fs/notify/mark.c b/fs/notify/mark.c index f9dda0304a10..0e93d90bb753 100644 --- a/fs/notify/mark.c +++ b/fs/notify/mark.c | |||
@@ -299,22 +299,16 @@ void fsnotify_clear_marks_by_group_flags(struct fsnotify_group *group, | |||
299 | unsigned int flags) | 299 | unsigned int flags) |
300 | { | 300 | { |
301 | struct fsnotify_mark *lmark, *mark; | 301 | struct fsnotify_mark *lmark, *mark; |
302 | LIST_HEAD(free_list); | ||
303 | 302 | ||
304 | mutex_lock(&group->mark_mutex); | 303 | mutex_lock(&group->mark_mutex); |
305 | list_for_each_entry_safe(mark, lmark, &group->marks_list, g_list) { | 304 | list_for_each_entry_safe(mark, lmark, &group->marks_list, g_list) { |
306 | if (mark->flags & flags) { | 305 | if (mark->flags & flags) { |
307 | list_add(&mark->free_g_list, &free_list); | ||
308 | list_del_init(&mark->g_list); | ||
309 | fsnotify_get_mark(mark); | 306 | fsnotify_get_mark(mark); |
307 | fsnotify_destroy_mark_locked(mark, group); | ||
308 | fsnotify_put_mark(mark); | ||
310 | } | 309 | } |
311 | } | 310 | } |
312 | mutex_unlock(&group->mark_mutex); | 311 | mutex_unlock(&group->mark_mutex); |
313 | |||
314 | list_for_each_entry_safe(mark, lmark, &free_list, free_g_list) { | ||
315 | fsnotify_destroy_mark(mark, group); | ||
316 | fsnotify_put_mark(mark); | ||
317 | } | ||
318 | } | 312 | } |
319 | 313 | ||
320 | /* | 314 | /* |