mount.h 1.1 KB
Newer Older
1 2
#include <linux/mount.h>

3 4 5 6 7
struct mnt_pcp {
	int mnt_count;
	int mnt_writers;
};

A
Al Viro 已提交
8
struct mount {
A
Al Viro 已提交
9
	struct list_head mnt_hash;
10
	struct mount *mnt_parent;
11
	struct dentry *mnt_mountpoint;
A
Al Viro 已提交
12
	struct vfsmount mnt;
13 14 15 16 17 18 19
#ifdef CONFIG_SMP
	struct mnt_pcp __percpu *mnt_pcp;
	atomic_t mnt_longterm;		/* how many of the refs are longterm */
#else
	int mnt_count;
	int mnt_writers;
#endif
20 21
	struct list_head mnt_mounts;	/* list of children, anchored here */
	struct list_head mnt_child;	/* and going through their mnt_child */
22 23 24 25 26
	/* yet to be moved - up to mnt_list */
	struct list_head mnt_expire;	/* link in fs-specific expiry list */
	struct list_head mnt_share;	/* circular list of shared mounts */
	struct list_head mnt_slave_list;/* list of slave mounts */
	struct list_head mnt_slave;	/* slave list entry */
27
	struct mount *mnt_master;	/* slave is on master->mnt_slave_list */
A
Al Viro 已提交
28 29 30 31 32 33 34
};

static inline struct mount *real_mount(struct vfsmount *mnt)
{
	return container_of(mnt, struct mount, mnt);
}

35
static inline int mnt_has_parent(struct mount *mnt)
36
{
37
	return mnt != mnt->mnt_parent;
38
}
39 40

extern struct mount *__lookup_mnt(struct vfsmount *, struct dentry *, int);