OSDN Git Service

vfs: move mnt_devname
authorAl Viro <viro@zeniv.linux.org.uk>
Fri, 25 Nov 2011 07:25:17 +0000 (02:25 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 4 Jan 2012 03:57:11 +0000 (22:57 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/mount.h
fs/namespace.c
include/linux/mount.h

index 7060d2a..c5fc3f7 100644 (file)
@@ -19,7 +19,8 @@ struct mount {
 #endif
        struct list_head mnt_mounts;    /* list of children, anchored here */
        struct list_head mnt_child;     /* and going through their mnt_child */
-       /* yet to be moved - up to mnt_devname */
+       /* yet to be moved - fsnotify ones go here */
+       const char *mnt_devname;        /* Name of device e.g. /dev/dsk/hda1 */
        struct list_head mnt_list;
        struct list_head mnt_expire;    /* link in fs-specific expiry list */
        struct list_head mnt_share;     /* circular list of shared mounts */
index e151253..b8a3092 100644 (file)
@@ -183,8 +183,8 @@ static struct mount *alloc_vfsmnt(const char *name)
                        goto out_free_cache;
 
                if (name) {
-                       mnt->mnt_devname = kstrdup(name, GFP_KERNEL);
-                       if (!mnt->mnt_devname)
+                       p->mnt_devname = kstrdup(name, GFP_KERNEL);
+                       if (!p->mnt_devname)
                                goto out_free_id;
                }
 
@@ -215,7 +215,7 @@ static struct mount *alloc_vfsmnt(const char *name)
 
 #ifdef CONFIG_SMP
 out_free_devname:
-       kfree(p->mnt.mnt_devname);
+       kfree(p->mnt_devname);
 #endif
 out_free_id:
        mnt_free_id(p);
@@ -451,7 +451,7 @@ static void __mnt_unmake_readonly(struct mount *mnt)
 
 static void free_vfsmnt(struct mount *mnt)
 {
-       kfree(mnt->mnt.mnt_devname);
+       kfree(mnt->mnt_devname);
        mnt_free_id(mnt);
 #ifdef CONFIG_SMP
        free_percpu(mnt->mnt_pcp);
@@ -692,7 +692,7 @@ static struct mount *clone_mnt(struct mount *old, struct dentry *root,
                                        int flag)
 {
        struct super_block *sb = old->mnt.mnt_sb;
-       struct mount *mnt = alloc_vfsmnt(old->mnt.mnt_devname);
+       struct mount *mnt = alloc_vfsmnt(old->mnt_devname);
 
        if (mnt) {
                if (flag & (CL_SLAVE | CL_PRIVATE))
@@ -997,7 +997,7 @@ static int show_vfsmnt(struct seq_file *m, void *v)
                if (err)
                        goto out;
        } else {
-               mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none");
+               mangle(m, r->mnt_devname ? r->mnt_devname : "none");
        }
        seq_putc(m, ' ');
        seq_path(m, &mnt_path, " \t\n\\");
@@ -1070,7 +1070,7 @@ static int show_mountinfo(struct seq_file *m, void *v)
        if (sb->s_op->show_devname)
                err = sb->s_op->show_devname(m, mnt);
        else
-               mangle(m, mnt->mnt_devname ? mnt->mnt_devname : "none");
+               mangle(m, r->mnt_devname ? r->mnt_devname : "none");
        if (err)
                goto out;
        seq_puts(m, sb->s_flags & MS_RDONLY ? " ro" : " rw");
@@ -1103,9 +1103,9 @@ static int show_vfsstat(struct seq_file *m, void *v)
                seq_puts(m, "device ");
                err = mnt->mnt_sb->s_op->show_devname(m, mnt);
        } else {
-               if (mnt->mnt_devname) {
+               if (r->mnt_devname) {
                        seq_puts(m, "device ");
-                       mangle(m, mnt->mnt_devname);
+                       mangle(m, r->mnt_devname);
                } else
                        seq_puts(m, "no device");
        }
index 16ae3d4..f18dd1b 100644 (file)
@@ -56,7 +56,6 @@ struct vfsmount {
        __u32 mnt_fsnotify_mask;
        struct hlist_head mnt_fsnotify_marks;
 #endif
-       const char *mnt_devname;        /* Name of device e.g. /dev/dsk/hda1 */
 };
 
 struct file; /* forward dec */