]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - fs/befs/linuxvfs.c
VFS: Convert sb->s_flags & MS_RDONLY to sb_rdonly(sb)
[mirror_ubuntu-jammy-kernel.git] / fs / befs / linuxvfs.c
index 63e7c4760bfb468852fb457fd8c2116492bb2a63..a92355cc453bf6cb09016e7f30fdba677c44bb48 100644 (file)
@@ -20,6 +20,7 @@
 #include <linux/sched.h>
 #include <linux/cred.h>
 #include <linux/exportfs.h>
+#include <linux/seq_file.h>
 
 #include "befs.h"
 #include "btree.h"
@@ -53,6 +54,7 @@ static int befs_nls2utf(struct super_block *sb, const char *in, int in_len,
 static void befs_put_super(struct super_block *);
 static int befs_remount(struct super_block *, int *, char *);
 static int befs_statfs(struct dentry *, struct kstatfs *);
+static int befs_show_options(struct seq_file *, struct dentry *);
 static int parse_options(char *, struct befs_mount_options *);
 static struct dentry *befs_fh_to_dentry(struct super_block *sb,
                                struct fid *fid, int fh_len, int fh_type);
@@ -66,7 +68,7 @@ static const struct super_operations befs_sops = {
        .put_super      = befs_put_super,       /* uninit super */
        .statfs         = befs_statfs,  /* statfs */
        .remount_fs     = befs_remount,
-       .show_options   = generic_show_options,
+       .show_options   = befs_show_options,
 };
 
 /* slab cache for befs_inode_info objects */
@@ -771,6 +773,24 @@ parse_options(char *options, struct befs_mount_options *opts)
        return 1;
 }
 
+static int befs_show_options(struct seq_file *m, struct dentry *root)
+{
+       struct befs_sb_info *befs_sb = BEFS_SB(root->d_sb);
+       struct befs_mount_options *opts = &befs_sb->mount_opts;
+
+       if (!uid_eq(opts->uid, GLOBAL_ROOT_UID))
+               seq_printf(m, ",uid=%u",
+                          from_kuid_munged(&init_user_ns, opts->uid));
+       if (!gid_eq(opts->gid, GLOBAL_ROOT_GID))
+               seq_printf(m, ",gid=%u",
+                          from_kgid_munged(&init_user_ns, opts->gid));
+       if (opts->iocharset)
+               seq_printf(m, ",charset=%s", opts->iocharset);
+       if (opts->debug)
+               seq_puts(m, ",debug");
+       return 0;
+}
+
 /* This function has the responsibiltiy of getting the
  * filesystem ready for unmounting.
  * Basically, we free everything that we allocated in
@@ -804,8 +824,6 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
        const off_t x86_sb_off = 512;
        int blocksize;
 
-       save_mount_options(sb, data);
-
        sb->s_fs_info = kzalloc(sizeof(*befs_sb), GFP_KERNEL);
        if (sb->s_fs_info == NULL)
                goto unacquire_none;
@@ -820,7 +838,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent)
 
        befs_debug(sb, "---> %s", __func__);
 
-       if (!(sb->s_flags & MS_RDONLY)) {
+       if (!sb_rdonly(sb)) {
                befs_warning(sb,
                             "No write support. Marking filesystem read-only");
                sb->s_flags |= MS_RDONLY;