Commit 0e7d73824e6b0024100701da246fec769dd8f087
Committed by
Linus Torvalds
1 parent
f2fbc6c2da
Exists in
master
and in
7 other branches
[PATCH] autofs3: Make sure all dentries refs are released before calling kill_anon_super()
Make sure all dentries refs are released before calling kill_anon_super() so that the assumption that generic_shutdown_super() can completely destroy the dentry tree for there will be no external references holds true. What was being done in the put_super() superblock op, is now done in the kill_sb() filesystem op instead, prior to calling kill_anon_super(). The call to shrink_dcache_sb() is removed as it is redundant since shrink_dcache_for_umount() will now be called after the cleanup routine. Signed-off-by: David Howells <dhowells@redhat.com> Acked-by: Ian Kent <raven@themaw.net> Cc: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Showing 4 changed files with 4 additions and 4 deletions Side-by-side Diff
fs/autofs/autofs_i.h
fs/autofs/dirhash.c
fs/autofs/init.c
fs/autofs/inode.c
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 | #include "autofs_i.h" |
21 | 21 | #include <linux/module.h> |
22 | 22 | |
23 | -static void autofs_put_super(struct super_block *sb) | |
23 | +void autofs_kill_sb(struct super_block *sb) | |
24 | 24 | { |
25 | 25 | struct autofs_sb_info *sbi = autofs_sbi(sb); |
26 | 26 | unsigned int n; |
27 | 27 | |
... | ... | @@ -37,13 +37,13 @@ |
37 | 37 | kfree(sb->s_fs_info); |
38 | 38 | |
39 | 39 | DPRINTK(("autofs: shutting down\n")); |
40 | + kill_anon_super(sb); | |
40 | 41 | } |
41 | 42 | |
42 | 43 | static void autofs_read_inode(struct inode *inode); |
43 | 44 | |
44 | 45 | static struct super_operations autofs_sops = { |
45 | 46 | .read_inode = autofs_read_inode, |
46 | - .put_super = autofs_put_super, | |
47 | 47 | .statfs = simple_statfs, |
48 | 48 | }; |
49 | 49 |