linux/include/linux/namespace.h
<<
>>
Prefs
   1#ifndef _NAMESPACE_H_
   2#define _NAMESPACE_H_
   3#ifdef __KERNEL__
   4
   5#include <linux/mount.h>
   6#include <linux/sched.h>
   7
   8struct namespace {
   9        atomic_t                count;
  10        struct vfsmount *       root;
  11        struct list_head        list;
  12        wait_queue_head_t poll;
  13        int event;
  14};
  15
  16extern int copy_namespace(int, struct task_struct *);
  17extern void __put_namespace(struct namespace *namespace);
  18extern struct namespace *dup_namespace(struct task_struct *, struct fs_struct *);
  19
  20static inline void put_namespace(struct namespace *namespace)
  21{
  22        if (atomic_dec_and_lock(&namespace->count, &vfsmount_lock))
  23                /* releases vfsmount_lock */
  24                __put_namespace(namespace);
  25}
  26
  27static inline void exit_namespace(struct task_struct *p)
  28{
  29        struct namespace *namespace = p->namespace;
  30        if (namespace) {
  31                task_lock(p);
  32                p->namespace = NULL;
  33                task_unlock(p);
  34                put_namespace(namespace);
  35        }
  36}
  37
  38static inline void get_namespace(struct namespace *namespace)
  39{
  40        atomic_inc(&namespace->count);
  41}
  42
  43#endif
  44#endif
  45
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.