sysfs, kernfs: make super_blocks bind to different kernfs_roots
[platform/adaptation/renesas_rcar/renesas_kernel.git] / fs / sysfs / sysfs.h
index 972b4a4..93b4b68 100644 (file)
  * mount.c
  */
 
-/*
- * Each sb is associated with one namespace tag, currently the network
- * namespace of the task which mounted this sysfs instance.  If multiple
- * tags become necessary, make the following an array and compare
- * sysfs_dirent tag against every entry.
- */
 struct sysfs_super_info {
-       void *ns;
+       /*
+        * The root associated with this super_block.  Each super_block is
+        * identified by the root and ns it's associated with.
+        */
+       struct kernfs_root      *root;
+
+       /*
+        * Each sb is associated with one namespace tag, currently the network
+        * namespace of the task which mounted this sysfs instance.  If multiple
+        * tags become necessary, make the following an array and compare
+        * sysfs_dirent tag against every entry.
+        */
+       const void              *ns;
 };
 #define sysfs_info(SB) ((struct sysfs_super_info *)(SB->s_fs_info))
-extern struct sysfs_dirent sysfs_root;
+extern struct sysfs_dirent *sysfs_root_sd;
 extern struct kmem_cache *sysfs_dir_cachep;
 
 /*
@@ -41,20 +47,15 @@ void sysfs_warn_dup(struct sysfs_dirent *parent, const char *name);
 /*
  * file.c
  */
-extern const struct file_operations kernfs_file_operations;
-
 int sysfs_add_file(struct sysfs_dirent *dir_sd,
                   const struct attribute *attr, bool is_bin);
-
 int sysfs_add_file_mode_ns(struct sysfs_dirent *dir_sd,
                           const struct attribute *attr, bool is_bin,
                           umode_t amode, const void *ns);
-void sysfs_unmap_bin_file(struct sysfs_dirent *sd);
 
 /*
  * symlink.c
  */
-extern const struct inode_operations sysfs_symlink_inode_operations;
 int sysfs_create_link_sd(struct sysfs_dirent *sd, struct kobject *target,
                         const char *name);