Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1272414 > unrolled thread

[RESEND PATCH] vfs: show_vfsstat: do not ignore errors from show_devname method

Started by"Dmitry V. Levin" <ldv@altlinux.org>
First post2015-11-18 19:00 +0100
Last post2015-11-18 23:00 +0100
Articles 5 — 2 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [RESEND PATCH] vfs: show_vfsstat: do not ignore errors from show_devname method "Dmitry V. Levin" <ldv@altlinux.org> - 2015-11-18 19:00 +0100
    Re: [RESEND PATCH] vfs: show_vfsstat: do not ignore errors from  show_devname method Mateusz Guzik <mguzik@redhat.com> - 2015-11-18 19:10 +0100
      [PATCH 3/3] vfs: show_vfsstat: remove redundant initialization and check of error code "Dmitry V. Levin" <ldv@altlinux.org> - 2015-11-18 23:00 +0100
      [PATCH 1/3] vfs: show_vfsmnt: remove redundant initialization of error code "Dmitry V. Levin" <ldv@altlinux.org> - 2015-11-18 23:00 +0100
      [PATCH 2/3] vfs: show_mountinfo: cleanup error code checks "Dmitry V. Levin" <ldv@altlinux.org> - 2015-11-18 23:00 +0100

#1272414 — [RESEND PATCH] vfs: show_vfsstat: do not ignore errors from show_devname method

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2015-11-18 19:00 +0100
Subject[RESEND PATCH] vfs: show_vfsstat: do not ignore errors from show_devname method
Message-ID<qwfbs-6aN-13@gated-at.bofh.it>
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 <ldv@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 8ebd9a3..876459559 100644
--- a/fs/proc_namespace.c
+++ b/fs/proc_namespace.c
@@ -197,17 +197,19 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
 	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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1272432 — Re: [RESEND PATCH] vfs: show_vfsstat: do not ignore errors from show_devname method

FromMateusz Guzik <mguzik@redhat.com>
Date2015-11-18 19:10 +0100
SubjectRe: [RESEND PATCH] vfs: show_vfsstat: do not ignore errors from show_devname method
Message-ID<qwfl8-6tM-15@gated-at.bofh.it>
In reply to#1272414
On Wed, Nov 18, 2015 at 08:42:48PM +0300, Dmitry V. Levin wrote:
> 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 <ldv@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 8ebd9a3..876459559 100644
> --- a/fs/proc_namespace.c
> +++ b/fs/proc_namespace.c
> @@ -197,17 +197,19 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
>  	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;
> 

I would suggest this should also remove now spurious initialization of
err to 0 and now always-true !err check prior to calling ->show_stats.

-- 
Mateusz Guzik
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1272609 — [PATCH 3/3] vfs: show_vfsstat: remove redundant initialization and check of error code

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2015-11-18 23:00 +0100
Subject[PATCH 3/3] vfs: show_vfsstat: remove redundant initialization and check of error code
Message-ID<qwiVH-ms-5@gated-at.bofh.it>
In reply to#1272432
As err variable is now always checked right after each assignment, its
initialization is redundant and could be safely removed.  For the same
reason, the last check of err is also redundant and could be removed as
well.

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

diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c
index 7a6b2f3..3f1190d 100644
--- a/fs/proc_namespace.c
+++ b/fs/proc_namespace.c
@@ -193,7 +193,7 @@ 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;
+	int err;
 
 	/* device */
 	if (sb->s_op->show_devname) {
@@ -224,8 +224,7 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
 	/* optional statistics */
 	if (sb->s_op->show_stats) {
 		seq_putc(m, ' ');
-		if (!err)
-			err = sb->s_op->show_stats(m, mnt_path.dentry);
+		err = sb->s_op->show_stats(m, mnt_path.dentry);
 	}
 
 	seq_putc(m, '\n');

-- 
ldv
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1272610 — [PATCH 1/3] vfs: show_vfsmnt: remove redundant initialization of error code

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2015-11-18 23:00 +0100
Subject[PATCH 1/3] vfs: show_vfsmnt: remove redundant initialization of error code
Message-ID<qwiVH-ms-7@gated-at.bofh.it>
In reply to#1272432
As err variable is now always checked right after the first assignment,
its initialization is redundant and could be safely removed.

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

diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c
index 876459559..cbc9c27 100644
--- a/fs/proc_namespace.c
+++ b/fs/proc_namespace.c
@@ -95,9 +95,9 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt)
 {
 	struct proc_mounts *p = m->private;
 	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;
+	int err;
 
 	if (sb->s_op->show_devname) {
 		err = sb->s_op->show_devname(m, mnt_path.dentry);

-- 
ldv
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1272613 — [PATCH 2/3] vfs: show_mountinfo: cleanup error code checks

From"Dmitry V. Levin" <ldv@altlinux.org>
Date2015-11-18 23:00 +0100
Subject[PATCH 2/3] vfs: show_mountinfo: cleanup error code checks
Message-ID<qwiVI-ms-13@gated-at.bofh.it>
In reply to#1272432
Check err variable right after each assignment.  This change makes
initialization of err redundant, so remove the initialization.

Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
---
 fs/proc_namespace.c | 20 +++++++++++---------
 1 file changed, 11 insertions(+), 9 deletions(-)

diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c
index cbc9c27..7a6b2f3 100644
--- a/fs/proc_namespace.c
+++ b/fs/proc_namespace.c
@@ -131,16 +131,17 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
 	struct mount *r = real_mount(mnt);
 	struct super_block *sb = mnt->mnt_sb;
 	struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
-	int err = 0;
+	int err;
 
 	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)
+	if (sb->s_op->show_path) {
 		err = sb->s_op->show_path(m, mnt->mnt_root);
-	else
+		if (err)
+			goto out;
+	} else {
 		seq_dentry(m, mnt->mnt_root, " \t\n\\");
-	if (err)
-		goto out;
+	}
 	seq_putc(m, ' ');
 
 	/* mountpoints outside of chroot jail will give SEQ_SKIP on this */
@@ -168,12 +169,13 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt)
 	seq_puts(m, " - ");
 	show_type(m, sb);
 	seq_putc(m, ' ');
-	if (sb->s_op->show_devname)
+	if (sb->s_op->show_devname) {
 		err = sb->s_op->show_devname(m, mnt->mnt_root);
-	else
+		if (err)
+			goto out;
+	} else {
 		mangle(m, r->mnt_devname ? r->mnt_devname : "none");
-	if (err)
-		goto out;
+	}
 	seq_puts(m, sb->s_flags & MS_RDONLY ? " ro" : " rw");
 	err = show_sb_opts(m, sb);
 	if (err)

-- 
ldv
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web