

It has five callsites, and is big.


 fs/namespace.c            |   10 ++++++++++
 include/linux/namespace.h |   11 +++--------
 2 files changed, 13 insertions(+), 8 deletions(-)

diff -puN include/linux/namespace.h~uninline-put_namespace include/linux/namespace.h
--- 25/include/linux/namespace.h~uninline-put_namespace	2003-07-14 01:25:18.000000000 -0700
+++ 25-akpm/include/linux/namespace.h	2003-07-14 01:26:25.000000000 -0700
@@ -14,17 +14,12 @@ struct namespace {
 
 extern void umount_tree(struct vfsmount *);
 extern int copy_namespace(int, struct task_struct *);
+void __put_namespace(struct namespace *namespace);
 
 static inline void put_namespace(struct namespace *namespace)
 {
-	if (atomic_dec_and_test(&namespace->count)) {
-		down_write(&namespace->sem);
-		spin_lock(&vfsmount_lock);
-		umount_tree(namespace->root);
-		spin_unlock(&vfsmount_lock);
-		up_write(&namespace->sem);
-		kfree(namespace);
-	}
+	if (atomic_dec_and_test(&namespace->count))
+		__put_namespace(namespace);
 }
 
 static inline void exit_namespace(struct task_struct *p)
diff -puN fs/namespace.c~uninline-put_namespace fs/namespace.c
--- 25/fs/namespace.c~uninline-put_namespace	2003-07-14 01:25:18.000000000 -0700
+++ 25-akpm/fs/namespace.c	2003-07-14 01:26:09.000000000 -0700
@@ -1158,3 +1158,13 @@ void __init mnt_init(unsigned long mempa
 	init_rootfs();
 	init_mount_tree();
 }
+
+void __put_namespace(struct namespace *namespace)
+{
+	down_write(&namespace->sem);
+	spin_lock(&vfsmount_lock);
+	umount_tree(namespace->root);
+	spin_unlock(&vfsmount_lock);
+	up_write(&namespace->sem);
+	kfree(namespace);
+}

_
