Loading fs/configfs/configfs_internal.h +1 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,6 @@ struct configfs_dirent { extern struct mutex configfs_symlink_mutex; extern spinlock_t configfs_dirent_lock; extern struct vfsmount * configfs_mount; extern struct kmem_cache *configfs_dir_cachep; extern int configfs_is_root(struct config_item *item); Loading @@ -80,7 +79,7 @@ extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); extern void configfs_drop_dentry(struct configfs_dirent *sd, struct dentry *parent); extern int configfs_setattr(struct dentry *dentry, struct iattr *iattr); extern int configfs_pin_fs(void); extern struct dentry *configfs_pin_fs(void); extern void configfs_release_fs(void); extern struct rw_semaphore configfs_rename_sem; Loading fs/configfs/dir.c +6 −8 Original line number Diff line number Diff line Loading @@ -1075,16 +1075,15 @@ int configfs_depend_item(struct configfs_subsystem *subsys, * Pin the configfs filesystem. This means we can safely access * the root of the configfs filesystem. */ ret = configfs_pin_fs(); if (ret) return ret; root = configfs_pin_fs(); if (IS_ERR(root)) return PTR_ERR(root); /* * Next, lock the root directory. We're going to check that the * subsystem is really registered, and so we need to lock out * configfs_[un]register_subsystem(). */ root = configfs_mount->mnt_root; mutex_lock(&root->d_inode->i_mutex); root_sd = root->d_fsdata; Loading Loading @@ -1673,14 +1672,13 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys) struct dentry *root; struct configfs_dirent *sd; err = configfs_pin_fs(); if (err) return err; root = configfs_pin_fs(); if (IS_ERR(root)) return PTR_ERR(root); if (!group->cg_item.ci_name) group->cg_item.ci_name = group->cg_item.ci_namebuf; root = configfs_mount->mnt_root; sd = root->d_fsdata; link_group(to_config_group(sd->s_element), group); Loading fs/configfs/mount.c +4 −3 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ /* Random magic number */ #define CONFIGFS_MAGIC 0x62656570 struct vfsmount * configfs_mount = NULL; static struct vfsmount *configfs_mount = NULL; struct kmem_cache *configfs_dir_cachep; static int configfs_mnt_count = 0; Loading Loading @@ -115,10 +115,11 @@ static struct file_system_type configfs_fs_type = { .kill_sb = kill_litter_super, }; int configfs_pin_fs(void) struct dentry *configfs_pin_fs(void) { return simple_pin_fs(&configfs_fs_type, &configfs_mount, int err = simple_pin_fs(&configfs_fs_type, &configfs_mount, &configfs_mnt_count); return err ? ERR_PTR(err) : configfs_mount->mnt_root; } void configfs_release_fs(void) Loading Loading
fs/configfs/configfs_internal.h +1 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,6 @@ struct configfs_dirent { extern struct mutex configfs_symlink_mutex; extern spinlock_t configfs_dirent_lock; extern struct vfsmount * configfs_mount; extern struct kmem_cache *configfs_dir_cachep; extern int configfs_is_root(struct config_item *item); Loading @@ -80,7 +79,7 @@ extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); extern void configfs_drop_dentry(struct configfs_dirent *sd, struct dentry *parent); extern int configfs_setattr(struct dentry *dentry, struct iattr *iattr); extern int configfs_pin_fs(void); extern struct dentry *configfs_pin_fs(void); extern void configfs_release_fs(void); extern struct rw_semaphore configfs_rename_sem; Loading
fs/configfs/dir.c +6 −8 Original line number Diff line number Diff line Loading @@ -1075,16 +1075,15 @@ int configfs_depend_item(struct configfs_subsystem *subsys, * Pin the configfs filesystem. This means we can safely access * the root of the configfs filesystem. */ ret = configfs_pin_fs(); if (ret) return ret; root = configfs_pin_fs(); if (IS_ERR(root)) return PTR_ERR(root); /* * Next, lock the root directory. We're going to check that the * subsystem is really registered, and so we need to lock out * configfs_[un]register_subsystem(). */ root = configfs_mount->mnt_root; mutex_lock(&root->d_inode->i_mutex); root_sd = root->d_fsdata; Loading Loading @@ -1673,14 +1672,13 @@ int configfs_register_subsystem(struct configfs_subsystem *subsys) struct dentry *root; struct configfs_dirent *sd; err = configfs_pin_fs(); if (err) return err; root = configfs_pin_fs(); if (IS_ERR(root)) return PTR_ERR(root); if (!group->cg_item.ci_name) group->cg_item.ci_name = group->cg_item.ci_namebuf; root = configfs_mount->mnt_root; sd = root->d_fsdata; link_group(to_config_group(sd->s_element), group); Loading
fs/configfs/mount.c +4 −3 Original line number Diff line number Diff line Loading @@ -37,7 +37,7 @@ /* Random magic number */ #define CONFIGFS_MAGIC 0x62656570 struct vfsmount * configfs_mount = NULL; static struct vfsmount *configfs_mount = NULL; struct kmem_cache *configfs_dir_cachep; static int configfs_mnt_count = 0; Loading Loading @@ -115,10 +115,11 @@ static struct file_system_type configfs_fs_type = { .kill_sb = kill_litter_super, }; int configfs_pin_fs(void) struct dentry *configfs_pin_fs(void) { return simple_pin_fs(&configfs_fs_type, &configfs_mount, int err = simple_pin_fs(&configfs_fs_type, &configfs_mount, &configfs_mnt_count); return err ? ERR_PTR(err) : configfs_mount->mnt_root; } void configfs_release_fs(void) Loading