From: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> Creates the top level /sys/fs/<type> as a part of the kset. Providing the ktype which would handle super_block entries will be the responsibility of the FS modules. Signed-off-by: Goldwyn Rodrigues <rgoldwyn@xxxxxxxx> --- fs/filesystems.c | 7 +++++++ include/linux/fs.h | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/fs/filesystems.c b/fs/filesystems.c index c5618db..a47391f 100644 --- a/fs/filesystems.c +++ b/fs/filesystems.c @@ -81,6 +81,11 @@ int register_filesystem(struct file_system_type * fs) else *p = fs; write_unlock(&file_systems_lock); + /* Filesystems to set sb_ktype only if they want + * core to create the sysfs entries + */ + if (fs->sb_ktype) + fs->kset = kset_create_and_add(fs->name, NULL, fs_kobj); return res; } @@ -109,6 +114,8 @@ int unregister_filesystem(struct file_system_type * fs) *tmp = fs->next; fs->next = NULL; write_unlock(&file_systems_lock); + if (fs->kset) + kset_unregister(fs->kset); synchronize_rcu(); return 0; } diff --git a/include/linux/fs.h b/include/linux/fs.h index 70e61b5..019546b 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -35,6 +35,7 @@ #include <asm/byteorder.h> #include <uapi/linux/fs.h> +#include <linux/kobject.h> struct backing_dev_info; struct bdi_writeback; @@ -42,7 +43,6 @@ struct export_operations; struct hd_geometry; struct iovec; struct kiocb; -struct kobject; struct pipe_inode_info; struct poll_table_struct; struct kstatfs; @@ -1996,6 +1996,8 @@ struct file_system_type { struct lock_class_key i_lock_key; struct lock_class_key i_mutex_key; struct lock_class_key i_mutex_dir_key; + struct kobj_type *sb_ktype; /* how to handle super block's kobjects */ + struct kset *kset; /* For /sys/fs/<type> */ }; #define MODULE_ALIAS_FS(NAME) MODULE_ALIAS("fs-" NAME) -- 2.6.6 -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html