diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2011-11-23 12:14:10 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-01-03 22:56:57 -0500 |
commit | 7d6fec45a5131918b51dcd76da52f2ec86a85be6 (patch) | |
tree | 82af862264cfa176a37c7d9f915806346c8df0bc /fs/mount.h | |
parent | dabe0dc194d5d56d379a8994fff47392744b6491 (diff) |
vfs: start hiding vfsmount guts series
Almost all fields of struct vfsmount are used only by core VFS (and
a fairly small part of it, at that). The plan: embed struct vfsmount
into struct mount, making the latter visible only to core parts of VFS.
Then move fields from vfsmount to mount, eventually leaving only
mnt_root/mnt_sb/mnt_flags in struct vfsmount. Filesystem code still
gets pointers to struct vfsmount and remains unchanged; all such
pointers go to struct vfsmount embedded into the instances of struct
mount allocated by fs/namespace.c. When fs/namespace.c et.al. get
a pointer to vfsmount, they turn it into pointer to mount (using
container_of) and work with that.
This is the first part of series; struct mount is introduced,
allocation switched to using it.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs/mount.h')
-rw-r--r-- | fs/mount.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/mount.h b/fs/mount.h index 7890e49f74ef..47da8163e1f4 100644 --- a/fs/mount.h +++ b/fs/mount.h | |||
@@ -1,5 +1,14 @@ | |||
1 | #include <linux/mount.h> | 1 | #include <linux/mount.h> |
2 | 2 | ||
3 | struct mount { | ||
4 | struct vfsmount mnt; | ||
5 | }; | ||
6 | |||
7 | static inline struct mount *real_mount(struct vfsmount *mnt) | ||
8 | { | ||
9 | return container_of(mnt, struct mount, mnt); | ||
10 | } | ||
11 | |||
3 | static inline int mnt_has_parent(struct vfsmount *mnt) | 12 | static inline int mnt_has_parent(struct vfsmount *mnt) |
4 | { | 13 | { |
5 | return mnt != mnt->mnt_parent; | 14 | return mnt != mnt->mnt_parent; |