The patch titled autofs3: Make sure all dentries refs are released before calling kill_anon_super() has been added to the -mm tree. Its filename is autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super.patch See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this ------------------------------------------------------ Subject: autofs3: Make sure all dentries refs are released before calling kill_anon_super() From: David Howells <dhowells@xxxxxxxxxx> 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@xxxxxxxxxx> Acked-by: Ian Kent <raven@xxxxxxxxxx> Cc: Andi Kleen <ak@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxx> --- fs/autofs/autofs_i.h | 1 + fs/autofs/dirhash.c | 1 - fs/autofs/init.c | 2 +- fs/autofs/inode.c | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) diff -puN fs/autofs/autofs_i.h~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super fs/autofs/autofs_i.h --- a/fs/autofs/autofs_i.h~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super +++ a/fs/autofs/autofs_i.h @@ -149,6 +149,7 @@ extern const struct file_operations auto /* Initializing function */ int autofs_fill_super(struct super_block *, void *, int); +void autofs_kill_sb(struct super_block *sb); /* Queue management functions */ diff -puN fs/autofs/dirhash.c~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super fs/autofs/dirhash.c --- a/fs/autofs/dirhash.c~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super +++ a/fs/autofs/dirhash.c @@ -246,5 +246,4 @@ void autofs_hash_nuke(struct autofs_sb_i kfree(ent); } } - shrink_dcache_sb(sbi->sb); } diff -puN fs/autofs/init.c~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super fs/autofs/init.c --- a/fs/autofs/init.c~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super +++ a/fs/autofs/init.c @@ -24,7 +24,7 @@ static struct file_system_type autofs_fs .owner = THIS_MODULE, .name = "autofs", .get_sb = autofs_get_sb, - .kill_sb = kill_anon_super, + .kill_sb = autofs_kill_sb, }; static int __init init_autofs_fs(void) diff -puN fs/autofs/inode.c~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super fs/autofs/inode.c --- a/fs/autofs/inode.c~autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super +++ a/fs/autofs/inode.c @@ -20,7 +20,7 @@ #include "autofs_i.h" #include <linux/module.h> -static void autofs_put_super(struct super_block *sb) +void autofs_kill_sb(struct super_block *sb) { struct autofs_sb_info *sbi = autofs_sbi(sb); unsigned int n; @@ -37,13 +37,13 @@ static void autofs_put_super(struct supe kfree(sb->s_fs_info); DPRINTK(("autofs: shutting down\n")); + kill_anon_super(sb); } static void autofs_read_inode(struct inode *inode); static struct super_operations autofs_sops = { .read_inode = autofs_read_inode, - .put_super = autofs_put_super, .statfs = simple_statfs, }; _ Patches currently in -mm which might be from dhowells@xxxxxxxxxx are origin.patch separate-bdi-congestion-functions-from-queue-congestion-functions.patch separate-bdi-congestion-functions-from-queue-congestion-functions-inline-stuff.patch fix-typo-in-memory-barrier-docs.patch autofs3-make-sure-all-dentries-refs-are-released-before-calling-kill_anon_super.patch nfs-represent-64-bit-fileids-as-64-bit-inode-numbers-on-32-bit-systems.patch log2-implement-a-general-integer-log2-facility-in-the-kernel.patch log2-implement-a-general-integer-log2-facility-in-the-kernel-fix.patch log2-implement-a-general-integer-log2-facility-in-the-kernel-vs-git-cryptodev.patch log2-alter-roundup_pow_of_two-so-that-it-can-use-a-ilog2-on-a-constant.patch log2-alter-get_order-so-that-it-can-make-use-of-ilog2-on-a-constant.patch log2-provide-ilog2-fallbacks-for-powerpc.patch fs-cache-provide-a-filesystem-specific-syncable-page-bit.patch fs-cache-generic-filesystem-caching-facility.patch fs-cache-release-page-private-in-failed-readahead.patch fs-cache-release-page-private-after-failed-readahead-12.patch fs-cache-make-kafs-use-fs-cache.patch fs-cache-make-kafs-use-fs-cache-fix.patch fs-cache-make-kafs-use-fs-cache-12.patch fs-cache-make-kafs-use-fs-cache-12-fix.patch fs-cache-make-kafs-use-fs-cache-kconfig-fix.patch fs-cache-make-kafs-use-fs-cache-vs-streamline-generic_file_-interfaces-and-filemap.patch nfs-use-local-caching.patch nfs-use-local-caching-12.patch nfs-use-local-caching-12-fix.patch nfs-use-local-caching-kconfig-fix.patch nfs-use-local-caching-configh.patch add-missing-page_copy-export-for-ppc-and-powerpc.patch fs-cache-cachefiles-ia64-missing-copy_page-export.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-fscache-fix-gfp_t-sparse-annotations.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-cachefiles-printk-format-warning.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-warning-fixes.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-cachefiles-cachefiles_write_page-shouldnt-indicate-error-twice.patch fscache-kconfig-tidying.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-log2-fix.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-cachefiles-handle-enospc-on-create-mkdir-better.patch fs-cache-cachefiles-a-cache-that-backs-onto-a-mounted-filesystem-inode-count-maintenance.patch afs-amend-the-afs-configuration-options.patch reiser4-get_sb_dev-fix.patch mutex-subsystem-synchro-test-module.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html