diff options
-rw-r--r-- | fs/notify/mark.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/fs/notify/mark.c b/fs/notify/mark.c index 41f3990f900b..236f29b066ed 100644 --- a/fs/notify/mark.c +++ b/fs/notify/mark.c | |||
@@ -349,10 +349,8 @@ static int fsnotify_mark_destroy(void *ignored) | |||
349 | 349 | ||
350 | for (;;) { | 350 | for (;;) { |
351 | spin_lock(&destroy_lock); | 351 | spin_lock(&destroy_lock); |
352 | list_for_each_entry_safe(mark, next, &destroy_list, destroy_list) { | 352 | /* exchange the list head */ |
353 | list_del(&mark->destroy_list); | 353 | list_replace_init(&destroy_list, &private_destroy_list); |
354 | list_add(&mark->destroy_list, &private_destroy_list); | ||
355 | } | ||
356 | spin_unlock(&destroy_lock); | 354 | spin_unlock(&destroy_lock); |
357 | 355 | ||
358 | synchronize_srcu(&fsnotify_mark_srcu); | 356 | synchronize_srcu(&fsnotify_mark_srcu); |