make freeing super_block rcu-delayed
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 4 Oct 2013 21:06:56 +0000 (17:06 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 25 Oct 2013 03:43:26 +0000 (23:43 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/super.c
include/linux/fs.h

index efa6e48..743bb71 100644 (file)
@@ -149,7 +149,7 @@ static void destroy_super(struct super_block *s)
        WARN_ON(!list_empty(&s->s_mounts));
        kfree(s->s_subtype);
        kfree(s->s_options);
-       kfree(s);
+       kfree_rcu(s, rcu);
 }
 
 /**
index b09e4e1..2ab8a67 100644 (file)
@@ -1330,6 +1330,7 @@ struct super_block {
         */
        struct list_lru         s_dentry_lru ____cacheline_aligned_in_smp;
        struct list_lru         s_inode_lru ____cacheline_aligned_in_smp;
+       struct rcu_head         rcu;
 };
 
 extern struct timespec current_fs_time(struct super_block *sb);