Commit c88b1e70 authored by Al Viro's avatar Al Viro

configfs: configfs_create() init callback is never NULL and it never fails

... so make it return void and drop the check for it being non-NULL
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent dbca51dd
...@@ -69,7 +69,7 @@ extern struct kmem_cache *configfs_dir_cachep; ...@@ -69,7 +69,7 @@ extern struct kmem_cache *configfs_dir_cachep;
extern int configfs_is_root(struct config_item *item); extern int configfs_is_root(struct config_item *item);
extern struct inode * configfs_new_inode(umode_t mode, struct configfs_dirent *, struct super_block *); extern struct inode * configfs_new_inode(umode_t mode, struct configfs_dirent *, struct super_block *);
extern int configfs_create(struct dentry *, umode_t mode, int (*init)(struct inode *)); extern int configfs_create(struct dentry *, umode_t mode, void (*init)(struct inode *));
extern int configfs_create_file(struct config_item *, const struct configfs_attribute *); extern int configfs_create_file(struct config_item *, const struct configfs_attribute *);
extern int configfs_make_dirent(struct configfs_dirent *, extern int configfs_make_dirent(struct configfs_dirent *,
......
...@@ -240,27 +240,24 @@ int configfs_make_dirent(struct configfs_dirent * parent_sd, ...@@ -240,27 +240,24 @@ int configfs_make_dirent(struct configfs_dirent * parent_sd,
return 0; return 0;
} }
static int init_dir(struct inode * inode) static void init_dir(struct inode * inode)
{ {
inode->i_op = &configfs_dir_inode_operations; inode->i_op = &configfs_dir_inode_operations;
inode->i_fop = &configfs_dir_operations; inode->i_fop = &configfs_dir_operations;
/* directory inodes start off with i_nlink == 2 (for "." entry) */ /* directory inodes start off with i_nlink == 2 (for "." entry) */
inc_nlink(inode); inc_nlink(inode);
return 0;
} }
static int configfs_init_file(struct inode * inode) static void configfs_init_file(struct inode * inode)
{ {
inode->i_size = PAGE_SIZE; inode->i_size = PAGE_SIZE;
inode->i_fop = &configfs_file_operations; inode->i_fop = &configfs_file_operations;
return 0;
} }
static int init_symlink(struct inode * inode) static void init_symlink(struct inode * inode)
{ {
inode->i_op = &configfs_symlink_inode_operations; inode->i_op = &configfs_symlink_inode_operations;
return 0;
} }
static int create_dir(struct config_item *k, struct dentry *d) static int create_dir(struct config_item *k, struct dentry *d)
......
...@@ -176,7 +176,7 @@ static void configfs_set_inode_lock_class(struct configfs_dirent *sd, ...@@ -176,7 +176,7 @@ static void configfs_set_inode_lock_class(struct configfs_dirent *sd,
#endif /* CONFIG_LOCKDEP */ #endif /* CONFIG_LOCKDEP */
int configfs_create(struct dentry * dentry, umode_t mode, int (*init)(struct inode *)) int configfs_create(struct dentry * dentry, umode_t mode, void (*init)(struct inode *))
{ {
int error = 0; int error = 0;
struct inode *inode = NULL; struct inode *inode = NULL;
...@@ -198,13 +198,7 @@ int configfs_create(struct dentry * dentry, umode_t mode, int (*init)(struct ino ...@@ -198,13 +198,7 @@ int configfs_create(struct dentry * dentry, umode_t mode, int (*init)(struct ino
p_inode->i_mtime = p_inode->i_ctime = CURRENT_TIME; p_inode->i_mtime = p_inode->i_ctime = CURRENT_TIME;
configfs_set_inode_lock_class(sd, inode); configfs_set_inode_lock_class(sd, inode);
if (init) { init(inode);
error = init(inode);
if (error) {
iput(inode);
return error;
}
}
d_instantiate(dentry, inode); d_instantiate(dentry, inode);
if (S_ISDIR(mode) || S_ISLNK(mode)) if (S_ISDIR(mode) || S_ISLNK(mode))
dget(dentry); /* pin link and directory dentries in core */ dget(dentry); /* pin link and directory dentries in core */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment