]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/proc_namespace.c
Merge branch 'dma-buf-merge' of git://people.freedesktop.org/~airlied/linux
[karo-tx-linux.git] / fs / proc_namespace.c
index 9dcd9543ca12da3f388c6bcb2c703bc541b7a7d1..12412852d88a94d574bacebb5e64200f202db852 100644 (file)
@@ -94,9 +94,10 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt)
        struct mount *r = real_mount(mnt);
        int err = 0;
        struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
+       struct super_block *sb = mnt_path.dentry->d_sb;
 
-       if (mnt->mnt_sb->s_op->show_devname) {
-               err = mnt->mnt_sb->s_op->show_devname(m, mnt);
+       if (sb->s_op->show_devname) {
+               err = sb->s_op->show_devname(m, mnt_path.dentry);
                if (err)
                        goto out;
        } else {
@@ -105,14 +106,14 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt)
        seq_putc(m, ' ');
        seq_path(m, &mnt_path, " \t\n\\");
        seq_putc(m, ' ');
-       show_type(m, mnt->mnt_sb);
+       show_type(m, sb);
        seq_puts(m, __mnt_is_readonly(mnt) ? " ro" : " rw");
-       err = show_sb_opts(m, mnt->mnt_sb);
+       err = show_sb_opts(m, sb);
        if (err)
                goto out;
        show_mnt_opts(m, mnt);
-       if (mnt->mnt_sb->s_op->show_options)
-               err = mnt->mnt_sb->s_op->show_options(m, mnt);
+       if (sb->s_op->show_options)
+               err = sb->s_op->show_options(m, mnt_path.dentry);
        seq_puts(m, " 0 0\n");
 out:
        return err;
@@ -130,7 +131,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
        seq_printf(m, "%i %i %u:%u ", r->mnt_id, r->mnt_parent->mnt_id,
                   MAJOR(sb->s_dev), MINOR(sb->s_dev));
        if (sb->s_op->show_path)
-               err = sb->s_op->show_path(m, mnt);
+               err = sb->s_op->show_path(m, mnt->mnt_root);
        else
                seq_dentry(m, mnt->mnt_root, " \t\n\\");
        if (err)
@@ -163,7 +164,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
        show_type(m, sb);
        seq_putc(m, ' ');
        if (sb->s_op->show_devname)
-               err = sb->s_op->show_devname(m, mnt);
+               err = sb->s_op->show_devname(m, mnt->mnt_root);
        else
                mangle(m, r->mnt_devname ? r->mnt_devname : "none");
        if (err)
@@ -173,7 +174,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
        if (err)
                goto out;
        if (sb->s_op->show_options)
-               err = sb->s_op->show_options(m, mnt);
+               err = sb->s_op->show_options(m, mnt->mnt_root);
        seq_putc(m, '\n');
 out:
        return err;
@@ -183,12 +184,13 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
 {
        struct mount *r = real_mount(mnt);
        struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
+       struct super_block *sb = mnt_path.dentry->d_sb;
        int err = 0;
 
        /* device */
-       if (mnt->mnt_sb->s_op->show_devname) {
+       if (sb->s_op->show_devname) {
                seq_puts(m, "device ");
-               err = mnt->mnt_sb->s_op->show_devname(m, mnt);
+               err = sb->s_op->show_devname(m, mnt_path.dentry);
        } else {
                if (r->mnt_devname) {
                        seq_puts(m, "device ");
@@ -204,13 +206,13 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
 
        /* file system type */
        seq_puts(m, "with fstype ");
-       show_type(m, mnt->mnt_sb);
+       show_type(m, sb);
 
        /* optional statistics */
-       if (mnt->mnt_sb->s_op->show_stats) {
+       if (sb->s_op->show_stats) {
                seq_putc(m, ' ');
                if (!err)
-                       err = mnt->mnt_sb->s_op->show_stats(m, mnt);
+                       err = sb->s_op->show_stats(m, mnt_path.dentry);
        }
 
        seq_putc(m, '\n');