re: vfs: make mounts and mountstats honor root dir like mountinfo does

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Dmitry V. Levin,

The patch 9d4d65748a5c: "vfs: make mounts and mountstats honor root
dir like mountinfo does" from Dec 16, 2014, leads to the following
static checker warning:

	fs/proc_namespace.c:223 show_vfsstat()
	warn: we tested 'err' before and it was 'false'

fs/proc_namespace.c
   188  static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt)
   189  {
   190          struct proc_mounts *p = m->private;
   191          struct mount *r = real_mount(mnt);
   192          struct path mnt_path = { .dentry = mnt->mnt_root, .mnt = mnt };
   193          struct super_block *sb = mnt_path.dentry->d_sb;
   194          int err = 0;
   195  
   196          /* device */
   197          if (sb->s_op->show_devname) {
   198                  seq_puts(m, "device ");
   199                  err = sb->s_op->show_devname(m, mnt_path.dentry);
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Do we care if this fails?

   200          } else {
   201                  if (r->mnt_devname) {
   202                          seq_puts(m, "device ");
   203                          mangle(m, r->mnt_devname);
   204                  } else
   205                          seq_puts(m, "no device");
   206          }
   207  
   208          /* mount point */
   209          seq_puts(m, " mounted on ");
   210          /* mountpoints outside of chroot jail will give SEQ_SKIP on this */
   211          err = seq_path_root(m, &mnt_path, &p->root, " \t\n\\");
   212          if (err)
   213                  goto out;

We over-write it here.

   214          seq_putc(m, ' ');
   215  
   216          /* file system type */
   217          seq_puts(m, "with fstype ");
   218          show_type(m, sb);
   219  
   220          /* optional statistics */
   221          if (sb->s_op->show_stats) {
   222                  seq_putc(m, ' ');
   223                  if (!err)
   224                          err = sb->s_op->show_stats(m, mnt_path.dentry);

So we get a static checker warning because the "if (!err)" check is
not needed.

   225          }
   226  
   227          seq_putc(m, '\n');
   228  out:
   229          return err;
   230  }


regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux