switch configfs
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Родитель
31a203df9c
Коммит
d463a0c4b5
|
@ -90,6 +90,7 @@ extern const struct file_operations configfs_file_operations;
|
||||||
extern const struct file_operations bin_fops;
|
extern const struct file_operations bin_fops;
|
||||||
extern const struct inode_operations configfs_dir_inode_operations;
|
extern const struct inode_operations configfs_dir_inode_operations;
|
||||||
extern const struct inode_operations configfs_symlink_inode_operations;
|
extern const struct inode_operations configfs_symlink_inode_operations;
|
||||||
|
extern const struct dentry_operations configfs_dentry_ops;
|
||||||
|
|
||||||
extern int configfs_symlink(struct inode *dir, struct dentry *dentry,
|
extern int configfs_symlink(struct inode *dir, struct dentry *dentry,
|
||||||
const char *symname);
|
const char *symname);
|
||||||
|
|
|
@ -72,7 +72,7 @@ static int configfs_d_delete(const struct dentry *dentry)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct dentry_operations configfs_dentry_ops = {
|
const struct dentry_operations configfs_dentry_ops = {
|
||||||
.d_iput = configfs_d_iput,
|
.d_iput = configfs_d_iput,
|
||||||
/* simple_delete_dentry() isn't exported */
|
/* simple_delete_dentry() isn't exported */
|
||||||
.d_delete = configfs_d_delete,
|
.d_delete = configfs_d_delete,
|
||||||
|
@ -442,7 +442,6 @@ static int configfs_attach_attr(struct configfs_dirent * sd, struct dentry * den
|
||||||
return error;
|
return error;
|
||||||
}
|
}
|
||||||
|
|
||||||
d_set_d_op(dentry, &configfs_dentry_ops);
|
|
||||||
d_rehash(dentry);
|
d_rehash(dentry);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -489,7 +488,6 @@ static struct dentry * configfs_lookup(struct inode *dir,
|
||||||
*/
|
*/
|
||||||
if (dentry->d_name.len > NAME_MAX)
|
if (dentry->d_name.len > NAME_MAX)
|
||||||
return ERR_PTR(-ENAMETOOLONG);
|
return ERR_PTR(-ENAMETOOLONG);
|
||||||
d_set_d_op(dentry, &configfs_dentry_ops);
|
|
||||||
d_add(dentry, NULL);
|
d_add(dentry, NULL);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -683,7 +681,6 @@ static int create_default_group(struct config_group *parent_group,
|
||||||
ret = -ENOMEM;
|
ret = -ENOMEM;
|
||||||
child = d_alloc(parent, &name);
|
child = d_alloc(parent, &name);
|
||||||
if (child) {
|
if (child) {
|
||||||
d_set_d_op(child, &configfs_dentry_ops);
|
|
||||||
d_add(child, NULL);
|
d_add(child, NULL);
|
||||||
|
|
||||||
ret = configfs_attach_group(&parent_group->cg_item,
|
ret = configfs_attach_group(&parent_group->cg_item,
|
||||||
|
@ -1681,7 +1678,6 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys)
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
dentry = d_alloc(configfs_sb->s_root, &name);
|
dentry = d_alloc(configfs_sb->s_root, &name);
|
||||||
if (dentry) {
|
if (dentry) {
|
||||||
d_set_d_op(dentry, &configfs_dentry_ops);
|
|
||||||
d_add(dentry, NULL);
|
d_add(dentry, NULL);
|
||||||
|
|
||||||
err = configfs_attach_group(sd->s_element, &group->cg_item,
|
err = configfs_attach_group(sd->s_element, &group->cg_item,
|
||||||
|
|
|
@ -101,6 +101,7 @@ static int configfs_fill_super(struct super_block *sb, void *data, int silent)
|
||||||
configfs_root_group.cg_item.ci_dentry = root;
|
configfs_root_group.cg_item.ci_dentry = root;
|
||||||
root->d_fsdata = &configfs_root;
|
root->d_fsdata = &configfs_root;
|
||||||
sb->s_root = root;
|
sb->s_root = root;
|
||||||
|
sb->s_d_op = &configfs_dentry_ops; /* the rest get that */
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче