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>
This commit is contained in:
@@ -1,5 +1,14 @@
|
||||
#include <linux/mount.h>
|
||||
|
||||
struct mount {
|
||||
struct vfsmount mnt;
|
||||
};
|
||||
|
||||
static inline struct mount *real_mount(struct vfsmount *mnt)
|
||||
{
|
||||
return container_of(mnt, struct mount, mnt);
|
||||
}
|
||||
|
||||
static inline int mnt_has_parent(struct vfsmount *mnt)
|
||||
{
|
||||
return mnt != mnt->mnt_parent;
|
||||
|
Reference in New Issue
Block a user