]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
cifs: update super_operations to show_devname
authorSteve French <stfrench@microsoft.com>
Tue, 15 Dec 2020 02:08:10 +0000 (20:08 -0600)
committerSteve French <stfrench@microsoft.com>
Tue, 15 Dec 2020 21:12:51 +0000 (15:12 -0600)
This is needed so that we display the correct //server/share vs
\\server\share in /proc/mounts for the device name (in the new
mount API).

Signed-off-by: Steve French <stfrench@microsoft.com>
Reviewed-by: Shyam Prasad N <sprasad@microsoft.com>
fs/cifs/cifsfs.c

index 4c385eeecc051c3d854b24b62df265769a7121df..a19387fe8b47492146e204276294165bcfb0c2ec 100644 (file)
@@ -462,6 +462,25 @@ cifs_show_cache_flavor(struct seq_file *s, struct cifs_sb_info *cifs_sb)
                seq_puts(s, "loose");
 }
 
+/*
+ * cifs_show_devname() is used so we show the mount device name with correct
+ * format (e.g. forward slashes vs. back slashes) in /proc/mounts
+ */
+static int cifs_show_devname(struct seq_file *m, struct dentry *root)
+{
+       struct cifs_sb_info *cifs_sb = CIFS_SB(root->d_sb);
+       char *devname = kstrdup(cifs_sb->ctx->UNC, GFP_KERNEL);
+
+       if (devname == NULL)
+               seq_puts(m, "none");
+       else {
+               convert_delimiter(devname, '/');
+               seq_puts(m, devname);
+               kfree(devname);
+       }
+       return 0;
+}
+
 /*
  * cifs_show_options() is for displaying mount options in /proc/mounts.
  * Not all settable options are displayed but most of the important
@@ -695,6 +714,8 @@ static const struct super_operations cifs_super_ops = {
        .free_inode = cifs_free_inode,
        .drop_inode     = cifs_drop_inode,
        .evict_inode    = cifs_evict_inode,
+/*     .show_path      = cifs_show_path, */ /* Would we ever need show path? */
+       .show_devname   = cifs_show_devname,
 /*     .delete_inode   = cifs_delete_inode,  */  /* Do not need above
        function unless later we add lazy close of inodes or unless the
        kernel forgets to call us with the same number of releases (closes)