X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=include%2Flinux%2Fnamespace.h;h=d137009f0b2be0feb70efcffba537f899195865d;hb=6b39bb6548d60b9a18826134b5ccd5c3cef85fe2;hp=0e5a86f13b2f8b4bbac4b50f32836827fef9fae8;hpb=a8b3e6f10f08f66ae1072efd087b30966a3654f6;p=linux-2.6 diff --git a/include/linux/namespace.h b/include/linux/namespace.h index 0e5a86f13b..d137009f0b 100644 --- a/include/linux/namespace.h +++ b/include/linux/namespace.h @@ -4,16 +4,19 @@ #include #include +#include struct namespace { atomic_t count; struct vfsmount * root; struct list_head list; - struct rw_semaphore sem; + wait_queue_head_t poll; + int event; }; extern int copy_namespace(int, struct task_struct *); extern void __put_namespace(struct namespace *namespace); +extern struct namespace *dup_namespace(struct task_struct *, struct fs_struct *); static inline void put_namespace(struct namespace *namespace) { @@ -24,11 +27,8 @@ static inline void put_namespace(struct namespace *namespace) static inline void exit_namespace(struct task_struct *p) { - struct namespace *namespace = p->namespace; + struct namespace *namespace = p->nsproxy->namespace; if (namespace) { - task_lock(p); - p->namespace = NULL; - task_unlock(p); put_namespace(namespace); } }