summaryrefslogtreecommitdiffstats
path: root/fs/xfs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2008-08-13 08:50:21 +0200
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-08-13 08:50:21 +0200
commit6203300e5e9121440b27d3ed0b9fe2a64cb62b53 (patch)
treedf0e5dfe72d73324efcd4835d6b7da1dff72f28b /fs/xfs
parent[XFS] xfs_unmountfs should return void (diff)
downloadlinux-6203300e5e9121440b27d3ed0b9fe2a64cb62b53.tar.xz
linux-6203300e5e9121440b27d3ed0b9fe2a64cb62b53.zip
[XFS] don't call xfs_freesb from xfs_unmountfs
xfs_readsb is called before xfs_mount so xfs_freesb should be called after xfs_unmountfs, too. This means it now happens after a few things during the of xfs_unmount which all have nothing to do with the superblock. SGI-PV: 981498 SGI-Modid: xfs-linux-melb:xfs-kern:31835a Signed-off-by: Christoph Hellwig <hch@infradead.org> Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/linux-2.6/xfs_super.c3
-rw-r--r--fs/xfs/xfs_mount.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c
index 8fdb79046a60..73c65f19e549 100644
--- a/fs/xfs/linux-2.6/xfs_super.c
+++ b/fs/xfs/linux-2.6/xfs_super.c
@@ -1147,6 +1147,7 @@ xfs_fs_put_super(
}
xfs_unmountfs(mp);
+ xfs_freesb(mp);
xfs_icsb_destroy_counters(mp);
xfs_close_devices(mp);
xfs_qmops_put(mp);
@@ -1803,7 +1804,7 @@ xfs_fs_fill_super(
WARN_ON(error);
xfs_unmountfs(mp);
- goto out_free_fsname;
+ goto out_free_sb;
}
STATIC int
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index 7f5027266ea0..4d4161598406 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
@@ -1296,8 +1296,6 @@ xfs_unmountfs(
xfs_unmountfs_wait(mp); /* wait for async bufs */
xfs_log_unmount(mp); /* Done! No more fs ops. */
- xfs_freesb(mp);
-
/*
* All inodes from this mount point should be freed.
*/