From f5447a4f2304e0d98c1225bfd899d6f734976b3d Mon Sep 17 00:00:00 2001 From: Al Viro Date: Tue, 5 May 2009 22:10:44 -0400 Subject: [PATCH] --- yaml --- r: 147847 b: refs/heads/master c: a9e220f8322e2b0e0b8903fe00265461cffad3f0 h: refs/heads/master i: 147845: 68e163ce54d451a038a545862f7c0bb5e4b0e237 147843: 84a346c538f60a85297c8d652c82c5c59e5c89c5 147839: 00146c8b2dae24a869791535cff2b20d46ca2a8c v: v3 --- [refs] | 2 +- trunk/fs/ext4/super.c | 2 +- trunk/fs/super.c | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index dd8650c567c8..1caf7a6a021b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 62c6943b4b1e818aea60c11c5a68a50785b83119 +refs/heads/master: a9e220f8322e2b0e0b8903fe00265461cffad3f0 diff --git a/trunk/fs/ext4/super.c b/trunk/fs/ext4/super.c index c7b8f8d9b7a8..0d3034c5e8a4 100644 --- a/trunk/fs/ext4/super.c +++ b/trunk/fs/ext4/super.c @@ -576,6 +576,7 @@ static void ext4_put_super(struct super_block *sb) struct ext4_super_block *es = sbi->s_es; int i, err; + lock_super(sb); if (sb->s_dirt) ext4_write_super(sb); @@ -645,7 +646,6 @@ static void ext4_put_super(struct super_block *sb) unlock_super(sb); kobject_put(&sbi->s_kobj); wait_for_completion(&sbi->s_kobj_unregister); - lock_super(sb); lock_kernel(); kfree(sbi->s_blockgroup_lock); kfree(sbi); diff --git a/trunk/fs/super.c b/trunk/fs/super.c index 49f670cb9a83..54fd331f0cab 100644 --- a/trunk/fs/super.c +++ b/trunk/fs/super.c @@ -304,7 +304,7 @@ void generic_shutdown_super(struct super_block *sb) if (sb->s_root) { shrink_dcache_for_umount(sb); sync_filesystem(sb); - lock_super(sb); + get_fs_excl(); sb->s_flags &= ~MS_ACTIVE; /* bad name - it should be evict_inodes() */ @@ -322,7 +322,7 @@ void generic_shutdown_super(struct super_block *sb) } unlock_kernel(); - unlock_super(sb); + put_fs_excl(); } spin_lock(&sb_lock); /* should be initialized for __put_super_and_need_restart() */