The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/fs/mount.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #include <linux/mount.h>
    2 #include <linux/seq_file.h>
    3 #include <linux/poll.h>
    4 
    5 struct mnt_namespace {
    6         atomic_t                count;
    7         unsigned int            proc_inum;
    8         struct mount *  root;
    9         struct list_head        list;
   10         struct user_namespace   *user_ns;
   11         u64                     seq;    /* Sequence number to prevent loops */
   12         wait_queue_head_t poll;
   13         int event;
   14 };
   15 
   16 struct mnt_pcp {
   17         int mnt_count;
   18         int mnt_writers;
   19 };
   20 
   21 struct mount {
   22         struct list_head mnt_hash;
   23         struct mount *mnt_parent;
   24         struct dentry *mnt_mountpoint;
   25         struct vfsmount mnt;
   26 #ifdef CONFIG_SMP
   27         struct mnt_pcp __percpu *mnt_pcp;
   28 #else
   29         int mnt_count;
   30         int mnt_writers;
   31 #endif
   32         struct list_head mnt_mounts;    /* list of children, anchored here */
   33         struct list_head mnt_child;     /* and going through their mnt_child */
   34         struct list_head mnt_instance;  /* mount instance on sb->s_mounts */
   35         const char *mnt_devname;        /* Name of device e.g. /dev/dsk/hda1 */
   36         struct list_head mnt_list;
   37         struct list_head mnt_expire;    /* link in fs-specific expiry list */
   38         struct list_head mnt_share;     /* circular list of shared mounts */
   39         struct list_head mnt_slave_list;/* list of slave mounts */
   40         struct list_head mnt_slave;     /* slave list entry */
   41         struct mount *mnt_master;       /* slave is on master->mnt_slave_list */
   42         struct mnt_namespace *mnt_ns;   /* containing namespace */
   43 #ifdef CONFIG_FSNOTIFY
   44         struct hlist_head mnt_fsnotify_marks;
   45         __u32 mnt_fsnotify_mask;
   46 #endif
   47         int mnt_id;                     /* mount identifier */
   48         int mnt_group_id;               /* peer group identifier */
   49         int mnt_expiry_mark;            /* true if marked for expiry */
   50         int mnt_pinned;
   51         int mnt_ghosts;
   52 };
   53 
   54 #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
   55 
   56 static inline struct mount *real_mount(struct vfsmount *mnt)
   57 {
   58         return container_of(mnt, struct mount, mnt);
   59 }
   60 
   61 static inline int mnt_has_parent(struct mount *mnt)
   62 {
   63         return mnt != mnt->mnt_parent;
   64 }
   65 
   66 static inline int is_mounted(struct vfsmount *mnt)
   67 {
   68         /* neither detached nor internal? */
   69         return !IS_ERR_OR_NULL(real_mount(mnt));
   70 }
   71 
   72 extern struct mount *__lookup_mnt(struct vfsmount *, struct dentry *, int);
   73 
   74 static inline void get_mnt_ns(struct mnt_namespace *ns)
   75 {
   76         atomic_inc(&ns->count);
   77 }
   78 
   79 struct proc_mounts {
   80         struct seq_file m;
   81         struct mnt_namespace *ns;
   82         struct path root;
   83         int (*show)(struct seq_file *, struct vfsmount *);
   84 };
   85 
   86 #define proc_mounts(p) (container_of((p), struct proc_mounts, m))
   87 
   88 extern const struct seq_operations mounts_op;

Cache object: dba540e9814aca877999650a3e5ef301


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.