aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@infradead.org>2008-08-13 02:50:21 -0400
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>2008-08-13 02:50:21 -0400
commit6203300e5e9121440b27d3ed0b9fe2a64cb62b53 (patch)
treedf0e5dfe72d73324efcd4835d6b7da1dff72f28b /fs
parent41b5c2e77a0221cf07ac127afa122add67ac5418 (diff)
[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')
-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(
1147 } 1147 }
1148 1148
1149 xfs_unmountfs(mp); 1149 xfs_unmountfs(mp);
1150 xfs_freesb(mp);
1150 xfs_icsb_destroy_counters(mp); 1151 xfs_icsb_destroy_counters(mp);
1151 xfs_close_devices(mp); 1152 xfs_close_devices(mp);
1152 xfs_qmops_put(mp); 1153 xfs_qmops_put(mp);
@@ -1803,7 +1804,7 @@ xfs_fs_fill_super(
1803 WARN_ON(error); 1804 WARN_ON(error);
1804 1805
1805 xfs_unmountfs(mp); 1806 xfs_unmountfs(mp);
1806 goto out_free_fsname; 1807 goto out_free_sb;
1807} 1808}
1808 1809
1809STATIC int 1810STATIC 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(
1296 xfs_unmountfs_wait(mp); /* wait for async bufs */ 1296 xfs_unmountfs_wait(mp); /* wait for async bufs */
1297 xfs_log_unmount(mp); /* Done! No more fs ops. */ 1297 xfs_log_unmount(mp); /* Done! No more fs ops. */
1298 1298
1299 xfs_freesb(mp);
1300
1301 /* 1299 /*
1302 * All inodes from this mount point should be freed. 1300 * All inodes from this mount point should be freed.
1303 */ 1301 */