Date: Thu, 19 Mar 2015 11:10:54 +0000

Explicitly check show_devname method return code and bail out in case
of an error.  This fixes regression introduced by commit 9d4d65748a5c.

Signed-off-by: Dmitry V. Levin <l...@altlinux.org>
---
 fs/proc_namespace.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c
index 2256e7e..3f1190d 100644
--- a/fs/proc_namespace.c
+++ b/fs/proc_namespace.c
@@ -190,26 +190,28 @@ out:
 static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
 {
        struct proc_mounts *p = m->private;
        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;
 
        /* device */
        if (sb->s_op->show_devname) {
                seq_puts(m, "device ");
                err = sb->s_op->show_devname(m, mnt_path.dentry);
+               if (err)
+                       goto out;
        } else {
                if (r->mnt_devname) {
                        seq_puts(m, "device ");
                        mangle(m, r->mnt_devname);
                } else
                        seq_puts(m, "no device");
        }
 
        /* mount point */
        seq_puts(m, " mounted on ");
        /* mountpoints outside of chroot jail will give SEQ_SKIP on this */
        err = seq_path_root(m, &mnt_path, &p->root, " \t\n\\");
        if (err)
                goto out;
-- 
ldv

Reply via email to