patch-2.4.19 linux-2.4.19/include/linux/namespace.h
Next file: linux-2.4.19/include/linux/nbd.h
Previous file: linux-2.4.19/include/linux/mtd/partitions.h
Back to the patch index
Back to the overall index
- Lines: 43
- Date:
Fri Aug 2 17:39:45 2002
- Orig file:
linux-2.4.18/include/linux/namespace.h
- Orig date:
Wed Dec 31 16:00:00 1969
diff -urN linux-2.4.18/include/linux/namespace.h linux-2.4.19/include/linux/namespace.h
@@ -0,0 +1,42 @@
+#ifndef _NAMESPACE_H_
+#define _NAMESPACE_H_
+#ifdef __KERNEL__
+
+struct namespace {
+ atomic_t count;
+ struct vfsmount * root;
+ struct list_head list;
+ struct rw_semaphore sem;
+};
+
+static inline void put_namespace(struct namespace *namespace)
+{
+ if (atomic_dec_and_test(&namespace->count)) {
+ down_write(&namespace->sem);
+ spin_lock(&dcache_lock);
+ umount_tree(namespace->root);
+ spin_unlock(&dcache_lock);
+ up_write(&namespace->sem);
+ kfree(namespace);
+ }
+}
+
+static inline void exit_namespace(struct task_struct *p)
+{
+ struct namespace *namespace = p->namespace;
+ if (namespace) {
+ task_lock(p);
+ p->namespace = NULL;
+ task_unlock(p);
+ put_namespace(namespace);
+ }
+}
+extern int copy_namespace(int, struct task_struct *);
+
+static inline void get_namespace(struct namespace *namespace)
+{
+ atomic_inc(&namespace->count);
+}
+
+#endif
+#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)