In the next patch we need to look at the mount structure until just before
it's freed, so we need to be able to free it as the very last thing in
xfs_unmount.
Signed-off-by: Christoph Hellwig <hch@xxxxxx>
Index: linux-2.6-xfs/fs/xfs/xfs_mount.c
===================================================================
--- linux-2.6-xfs.orig/fs/xfs/xfs_mount.c 2007-08-13 18:07:48.000000000
+0200
+++ linux-2.6-xfs/fs/xfs/xfs_mount.c 2007-08-13 18:07:51.000000000 +0200
@@ -194,7 +194,6 @@ xfs_mount_free(
}
xfs_icsb_destroy_counters(mp);
- kmem_free(mp, sizeof(xfs_mount_t));
}
/*
Index: linux-2.6-xfs/fs/xfs/xfs_vfsops.c
===================================================================
--- linux-2.6-xfs.orig/fs/xfs/xfs_vfsops.c 2007-08-13 18:07:48.000000000
+0200
+++ linux-2.6-xfs/fs/xfs/xfs_vfsops.c 2007-08-13 18:07:51.000000000 +0200
@@ -639,6 +639,7 @@ out:
* and free the super block buffer & mount structures.
*/
xfs_unmountfs(mp, credp);
+ kmem_free(mp, sizeof(xfs_mount_t));
}
return XFS_ERROR(error);
Index: linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.c
===================================================================
--- linux-2.6-xfs.orig/fs/xfs/linux-2.6/xfs_vfs.c 2007-08-13
18:07:48.000000000 +0200
+++ linux-2.6-xfs/fs/xfs/linux-2.6/xfs_vfs.c 2007-08-13 18:07:51.000000000
+0200
@@ -411,6 +411,7 @@ bhv_remove_all_vfsops(
mp = XFS_VFSTOM(vfsp);
VFS_REMOVEBHV(vfsp, &mp->m_bhv);
xfs_mount_free(mp, 0);
+ kmem_free(mp, sizeof(xfs_mount_t));
}
void
|