diff options
author | Christoph Hellwig <hch@lst.de> | 2009-05-05 09:40:36 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2009-06-11 21:36:07 -0400 |
commit | 6cfd0148425e528b859b26e436b01f23f6926224 (patch) | |
tree | 60e3257053554ff198fe5825e6f12a00c3b4422a /fs/gfs2/super.c | |
parent | a9e220f8322e2b0e0b8903fe00265461cffad3f0 (diff) |
push BKL down into ->put_super
Move BKL into ->put_super from the only caller. A couple of
filesystems had trivial enough ->put_super (only kfree and NULLing of
s_fs_info + stuff in there) to not get any locking: coda, cramfs, efs,
hugetlbfs, omfs, qnx4, shmem, all others got the full treatment. Most
of them probably don't need it, but I'd rather sort that out individually.
Preferably after all the other BKL pushdowns in that area.
[AV: original used to move lock_super() down as well; these changes are
removed since we don't do lock_super() at all in generic_shutdown_super()
now]
[AV: fuse, btrfs and xfs are known to need no damn BKL, exempt]
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/gfs2/super.c')
-rw-r--r-- | fs/gfs2/super.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 0a6801336470..c8930b31cdf0 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -719,6 +719,8 @@ static void gfs2_put_super(struct super_block *sb) | |||
719 | int error; | 719 | int error; |
720 | struct gfs2_jdesc *jd; | 720 | struct gfs2_jdesc *jd; |
721 | 721 | ||
722 | lock_kernel(); | ||
723 | |||
722 | /* Unfreeze the filesystem, if we need to */ | 724 | /* Unfreeze the filesystem, if we need to */ |
723 | 725 | ||
724 | mutex_lock(&sdp->sd_freeze_lock); | 726 | mutex_lock(&sdp->sd_freeze_lock); |
@@ -785,6 +787,8 @@ restart: | |||
785 | 787 | ||
786 | /* At this point, we're through participating in the lockspace */ | 788 | /* At this point, we're through participating in the lockspace */ |
787 | gfs2_sys_fs_del(sdp); | 789 | gfs2_sys_fs_del(sdp); |
790 | |||
791 | unlock_kernel(); | ||
788 | } | 792 | } |
789 | 793 | ||
790 | /** | 794 | /** |