The ci_type field of the config_item structure do not modify the fields
of the config_item_type structure it points to. And the other pointers
initialized with ci_type do not modify the fields as well.
So, make the ci_type field and the pointers initialized with ci_type
as const.

Make the struct config_item_type *type function argument of functions
config_{item/group}_init_type_name const as the argument in both the
functions is only stored in the ci_type field of a config_item structure
which is now made const.
Make the argument of configfs_register_default_group const as it is
only passed to the argument of the function config_group_init_type_name
which is now const.

Signed-off-by: Bhumika Goyal <bhumi...@gmail.com>
---
* Changes in v2- Combine all the followup patches and the constification
patches into a series.

 fs/configfs/dir.c        | 10 +++++-----
 fs/configfs/item.c       |  6 +++---
 fs/configfs/symlink.c    |  4 ++--
 include/linux/configfs.h |  8 ++++----
 4 files changed, 14 insertions(+), 14 deletions(-)

diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 56fb261..577cff2 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -584,7 +584,7 @@ static void detach_attrs(struct config_item * item)
 
 static int populate_attrs(struct config_item *item)
 {
-       struct config_item_type *t = item->ci_type;
+       const struct config_item_type *t = item->ci_type;
        struct configfs_attribute *attr;
        struct configfs_bin_attribute *bin_attr;
        int error = 0;
@@ -901,7 +901,7 @@ static void configfs_detach_group(struct config_item *item)
 static void client_disconnect_notify(struct config_item *parent_item,
                                     struct config_item *item)
 {
-       struct config_item_type *type;
+       const struct config_item_type *type;
 
        type = parent_item->ci_type;
        BUG_ON(!type);
@@ -920,7 +920,7 @@ static void client_disconnect_notify(struct config_item 
*parent_item,
 static void client_drop_item(struct config_item *parent_item,
                             struct config_item *item)
 {
-       struct config_item_type *type;
+       const struct config_item_type *type;
 
        type = parent_item->ci_type;
        BUG_ON(!type);
@@ -1260,7 +1260,7 @@ static int configfs_mkdir(struct inode *dir, struct 
dentry *dentry, umode_t mode
        struct config_item *parent_item;
        struct configfs_subsystem *subsys;
        struct configfs_dirent *sd;
-       struct config_item_type *type;
+       const struct config_item_type *type;
        struct module *subsys_owner = NULL, *new_item_owner = NULL;
        char *name;
 
@@ -1810,7 +1810,7 @@ void configfs_unregister_group(struct config_group *group)
 struct config_group *
 configfs_register_default_group(struct config_group *parent_group,
                                const char *name,
-                               struct config_item_type *item_type)
+                               const struct config_item_type *item_type)
 {
        int ret;
        struct config_group *group;
diff --git a/fs/configfs/item.c b/fs/configfs/item.c
index a66f662..88f266e 100644
--- a/fs/configfs/item.c
+++ b/fs/configfs/item.c
@@ -113,7 +113,7 @@ int config_item_set_name(struct config_item *item, const 
char *fmt, ...)
 
 void config_item_init_type_name(struct config_item *item,
                                const char *name,
-                               struct config_item_type *type)
+                               const struct config_item_type *type)
 {
        config_item_set_name(item, "%s", name);
        item->ci_type = type;
@@ -122,7 +122,7 @@ void config_item_init_type_name(struct config_item *item,
 EXPORT_SYMBOL(config_item_init_type_name);
 
 void config_group_init_type_name(struct config_group *group, const char *name,
-                        struct config_item_type *type)
+                        const struct config_item_type *type)
 {
        config_item_set_name(&group->cg_item, "%s", name);
        group->cg_item.ci_type = type;
@@ -148,7 +148,7 @@ struct config_item *config_item_get_unless_zero(struct 
config_item *item)
 
 static void config_item_cleanup(struct config_item *item)
 {
-       struct config_item_type *t = item->ci_type;
+       const struct config_item_type *t = item->ci_type;
        struct config_group *s = item->ci_group;
        struct config_item *parent = item->ci_parent;
 
diff --git a/fs/configfs/symlink.c b/fs/configfs/symlink.c
index c8aabba..78ffc26 100644
--- a/fs/configfs/symlink.c
+++ b/fs/configfs/symlink.c
@@ -138,7 +138,7 @@ int configfs_symlink(struct inode *dir, struct dentry 
*dentry, const char *symna
        struct configfs_dirent *sd;
        struct config_item *parent_item;
        struct config_item *target_item = NULL;
-       struct config_item_type *type;
+       const struct config_item_type *type;
 
        sd = dentry->d_parent->d_fsdata;
        /*
@@ -186,7 +186,7 @@ int configfs_unlink(struct inode *dir, struct dentry 
*dentry)
        struct configfs_dirent *sd = dentry->d_fsdata;
        struct configfs_symlink *sl;
        struct config_item *parent_item;
-       struct config_item_type *type;
+       const struct config_item_type *type;
        int ret;
 
        ret = -EPERM;  /* What lack-of-symlink returns */
diff --git a/include/linux/configfs.h b/include/linux/configfs.h
index c967090..90b90f8 100644
--- a/include/linux/configfs.h
+++ b/include/linux/configfs.h
@@ -58,7 +58,7 @@ struct config_item {
        struct list_head        ci_entry;
        struct config_item      *ci_parent;
        struct config_group     *ci_group;
-       struct config_item_type *ci_type;
+       const struct config_item_type   *ci_type;
        struct dentry           *ci_dentry;
 };
 
@@ -72,7 +72,7 @@ static inline char *config_item_name(struct config_item * 
item)
 
 extern void config_item_init_type_name(struct config_item *item,
                                       const char *name,
-                                      struct config_item_type *type);
+                                      const struct config_item_type *type);
 
 extern struct config_item *config_item_get(struct config_item *);
 extern struct config_item *config_item_get_unless_zero(struct config_item *);
@@ -101,7 +101,7 @@ struct config_group {
 extern void config_group_init(struct config_group *group);
 extern void config_group_init_type_name(struct config_group *group,
                                        const char *name,
-                                       struct config_item_type *type);
+                                       const struct config_item_type *type);
 
 static inline struct config_group *to_config_group(struct config_item *item)
 {
@@ -261,7 +261,7 @@ int configfs_register_group(struct config_group 
*parent_group,
 struct config_group *
 configfs_register_default_group(struct config_group *parent_group,
                                const char *name,
-                               struct config_item_type *item_type);
+                               const struct config_item_type *item_type);
 void configfs_unregister_default_group(struct config_group *group);
 
 /* These functions can sleep and can alloc with GFP_KERNEL */
-- 
1.9.1

Reply via email to