hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/oprofile/oprofilefs.c
....@@ -14,6 +14,7 @@
1414 #include <linux/module.h>
1515 #include <linux/oprofile.h>
1616 #include <linux/fs.h>
17
+#include <linux/fs_context.h>
1718 #include <linux/pagemap.h>
1819 #include <linux/uaccess.h>
1920
....@@ -238,7 +239,7 @@
238239 }
239240
240241
241
-static int oprofilefs_fill_super(struct super_block *sb, void *data, int silent)
242
+static int oprofilefs_fill_super(struct super_block *sb, struct fs_context *fc)
242243 {
243244 struct inode *root_inode;
244245
....@@ -263,18 +264,25 @@
263264 return 0;
264265 }
265266
266
-
267
-static struct dentry *oprofilefs_mount(struct file_system_type *fs_type,
268
- int flags, const char *dev_name, void *data)
267
+static int oprofilefs_get_tree(struct fs_context *fc)
269268 {
270
- return mount_single(fs_type, flags, data, oprofilefs_fill_super);
269
+ return get_tree_single(fc, oprofilefs_fill_super);
271270 }
272271
272
+static const struct fs_context_operations oprofilefs_context_ops = {
273
+ .get_tree = oprofilefs_get_tree,
274
+};
275
+
276
+static int oprofilefs_init_fs_context(struct fs_context *fc)
277
+{
278
+ fc->ops = &oprofilefs_context_ops;
279
+ return 0;
280
+}
273281
274282 static struct file_system_type oprofilefs_type = {
275283 .owner = THIS_MODULE,
276284 .name = "oprofilefs",
277
- .mount = oprofilefs_mount,
285
+ .init_fs_context = oprofilefs_init_fs_context,
278286 .kill_sb = kill_litter_super,
279287 };
280288 MODULE_ALIAS_FS("oprofilefs");