[funini.com] -> [kei@sodan] -> Kernel Reading

root/include/linux/mnt_namespace.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. put_mnt_ns
  2. exit_mnt_ns
  3. get_mnt_ns

#ifndef _NAMESPACE_H_
#define _NAMESPACE_H_
#ifdef __KERNEL__

#include <linux/mount.h>
#include <linux/sched.h>
#include <linux/nsproxy.h>
#include <linux/seq_file.h>

struct mnt_namespace {
        atomic_t                count;
        struct vfsmount *       root;
        struct list_head        list;
        wait_queue_head_t poll;
        int event;
};

struct proc_mounts {
        struct seq_file m; /* must be the first element */
        struct mnt_namespace *ns;
        struct path root;
        int event;
};

extern struct mnt_namespace *copy_mnt_ns(unsigned long, struct mnt_namespace *,
                struct fs_struct *);
extern void __put_mnt_ns(struct mnt_namespace *ns);

static inline void put_mnt_ns(struct mnt_namespace *ns)
{
        if (atomic_dec_and_lock(&ns->count, &vfsmount_lock))
                /* releases vfsmount_lock */
                __put_mnt_ns(ns);
}

static inline void exit_mnt_ns(struct task_struct *p)
{
        struct mnt_namespace *ns = p->nsproxy->mnt_ns;
        if (ns)
                put_mnt_ns(ns);
}

static inline void get_mnt_ns(struct mnt_namespace *ns)
{
        atomic_inc(&ns->count);
}

extern const struct seq_operations mounts_op;
extern const struct seq_operations mountinfo_op;
extern const struct seq_operations mountstats_op;

#endif
#endif

/* [<][>][^][v][top][bottom][index][help] */

[funini.com] -> [kei@sodan] -> Kernel Reading