aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/autofs4/autofs_i.h1
-rw-r--r--fs/autofs4/inode.c13
2 files changed, 5 insertions, 9 deletions
diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
index ebab147e9700..4218e26df916 100644
--- a/fs/autofs4/autofs_i.h
+++ b/fs/autofs4/autofs_i.h
@@ -122,6 +122,7 @@ struct autofs_sb_info {
122 spinlock_t lookup_lock; 122 spinlock_t lookup_lock;
123 struct list_head active_list; 123 struct list_head active_list;
124 struct list_head expiring_list; 124 struct list_head expiring_list;
125 struct rcu_head rcu;
125}; 126};
126 127
127static inline struct autofs_sb_info *autofs4_sbi(struct super_block *sb) 128static inline struct autofs_sb_info *autofs4_sbi(struct super_block *sb)
diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
index b104726e2d0a..3b9cc9b973c2 100644
--- a/fs/autofs4/inode.c
+++ b/fs/autofs4/inode.c
@@ -56,18 +56,13 @@ void autofs4_kill_sb(struct super_block *sb)
56 * just call kill_anon_super when we are called from 56 * just call kill_anon_super when we are called from
57 * deactivate_super. 57 * deactivate_super.
58 */ 58 */
59 if (!sbi) 59 if (sbi) /* Free wait queues, close pipe */
60 goto out_kill_sb; 60 autofs4_catatonic_mode(sbi);
61
62 /* Free wait queues, close pipe */
63 autofs4_catatonic_mode(sbi);
64
65 sb->s_fs_info = NULL;
66 kfree(sbi);
67 61
68out_kill_sb:
69 DPRINTK("shutting down"); 62 DPRINTK("shutting down");
70 kill_litter_super(sb); 63 kill_litter_super(sb);
64 if (sbi)
65 kfree_rcu(sbi, rcu);
71} 66}
72 67
73static int autofs4_show_options(struct seq_file *m, struct dentry *root) 68static int autofs4_show_options(struct seq_file *m, struct dentry *root)