On Mon, Apr 21, 2025 at 04:35:09AM +0100, Al Viro wrote: > Not since 8f2918898eb5 "new helpers: vfs_create_mount(), fc_mount()" > back in 2018. Get rid of the dead checks... > > Signed-off-by: Al Viro <viro@xxxxxxxxxxxxxxxxxx> > --- Good idea. Fwiw, I've put this into vfs-6.16.mount with some other minor stuff. If you're keeping it yourself let me know. > diff --git a/fs/namespace.c b/fs/namespace.c > index d9ca80dcc544..fa17762268f5 100644 > --- a/fs/namespace.c > +++ b/fs/namespace.c > @@ -355,12 +355,13 @@ static struct mount *alloc_vfsmnt(const char *name) > if (err) > goto out_free_cache; > > - if (name) { > + if (name) > mnt->mnt_devname = kstrdup_const(name, > GFP_KERNEL_ACCOUNT); > - if (!mnt->mnt_devname) > - goto out_free_id; > - } > + else > + mnt->mnt_devname = "none"; > + if (!mnt->mnt_devname) > + goto out_free_id; > > #ifdef CONFIG_SMP > mnt->mnt_pcp = alloc_percpu(struct mnt_pcp); > @@ -1268,7 +1269,7 @@ struct vfsmount *vfs_create_mount(struct fs_context *fc) > if (!fc->root) > return ERR_PTR(-EINVAL); > > - mnt = alloc_vfsmnt(fc->source ?: "none"); > + mnt = alloc_vfsmnt(fc->source); > if (!mnt) > return ERR_PTR(-ENOMEM); > > @@ -5491,7 +5492,7 @@ static int statmount_sb_source(struct kstatmount *s, struct seq_file *seq) > seq->buf[seq->count] = '\0'; > seq->count = start; > seq_commit(seq, string_unescape_inplace(seq->buf + start, UNESCAPE_OCTAL)); > - } else if (r->mnt_devname) { > + } else { > seq_puts(seq, r->mnt_devname); > } > return 0; > diff --git a/fs/proc_namespace.c b/fs/proc_namespace.c > index e133b507ddf3..5c555db68aa2 100644 > --- a/fs/proc_namespace.c > +++ b/fs/proc_namespace.c > @@ -111,7 +111,7 @@ static int show_vfsmnt(struct seq_file *m, struct vfsmount *mnt) > if (err) > goto out; > } else { > - mangle(m, r->mnt_devname ? r->mnt_devname : "none"); > + mangle(m, r->mnt_devname); > } > seq_putc(m, ' '); > /* mountpoints outside of chroot jail will give SEQ_SKIP on this */ > @@ -177,7 +177,7 @@ static int show_mountinfo(struct seq_file *m, struct vfsmount *mnt) > if (err) > goto out; > } else { > - mangle(m, r->mnt_devname ? r->mnt_devname : "none"); > + mangle(m, r->mnt_devname); > } > seq_puts(m, sb_rdonly(sb) ? " ro" : " rw"); > err = show_sb_opts(m, sb); > @@ -199,17 +199,13 @@ static int show_vfsstat(struct seq_file *m, struct vfsmount *mnt) > int err; > > /* device */ > + seq_puts(m, "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"); > + mangle(m, r->mnt_devname); > } > > /* mount point */