|
@@ -377,10 +377,22 @@ static void bpf_evict_inode(struct inode *inode)
|
|
|
bpf_any_put(inode->i_private, type);
|
|
|
}
|
|
|
|
|
|
+/*
|
|
|
+ * Display the mount options in /proc/mounts.
|
|
|
+ */
|
|
|
+static int bpf_show_options(struct seq_file *m, struct dentry *root)
|
|
|
+{
|
|
|
+ umode_t mode = d_inode(root)->i_mode & S_IALLUGO & ~S_ISVTX;
|
|
|
+
|
|
|
+ if (mode != S_IRWXUGO)
|
|
|
+ seq_printf(m, ",mode=%o", mode);
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
static const struct super_operations bpf_super_ops = {
|
|
|
.statfs = simple_statfs,
|
|
|
.drop_inode = generic_delete_inode,
|
|
|
- .show_options = generic_show_options,
|
|
|
+ .show_options = bpf_show_options,
|
|
|
.evict_inode = bpf_evict_inode,
|
|
|
};
|
|
|
|
|
@@ -434,8 +446,6 @@ static int bpf_fill_super(struct super_block *sb, void *data, int silent)
|
|
|
struct inode *inode;
|
|
|
int ret;
|
|
|
|
|
|
- save_mount_options(sb, data);
|
|
|
-
|
|
|
ret = bpf_parse_options(data, &opts);
|
|
|
if (ret)
|
|
|
return ret;
|