diff options
Diffstat (limited to 'fs/sysfs/inode.c')
-rw-r--r-- | fs/sysfs/inode.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index 565cac1d4200..970a33f03299 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c | |||
@@ -85,7 +85,7 @@ int sysfs_setattr(struct dentry * dentry, struct iattr * iattr) | |||
85 | 85 | ||
86 | if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) | 86 | if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) |
87 | mode &= ~S_ISGID; | 87 | mode &= ~S_ISGID; |
88 | sd_iattr->ia_mode = mode; | 88 | sd_iattr->ia_mode = sd->s_mode = mode; |
89 | } | 89 | } |
90 | 90 | ||
91 | return error; | 91 | return error; |
@@ -166,16 +166,6 @@ int sysfs_create(struct dentry * dentry, int mode, int (*init)(struct inode *)) | |||
166 | return error; | 166 | return error; |
167 | } | 167 | } |
168 | 168 | ||
169 | struct dentry * sysfs_get_dentry(struct dentry * parent, const char * name) | ||
170 | { | ||
171 | struct qstr qstr; | ||
172 | |||
173 | qstr.name = name; | ||
174 | qstr.len = strlen(name); | ||
175 | qstr.hash = full_name_hash(name,qstr.len); | ||
176 | return lookup_hash(&qstr,parent); | ||
177 | } | ||
178 | |||
179 | /* | 169 | /* |
180 | * Get the name for corresponding element represented by the given sysfs_dirent | 170 | * Get the name for corresponding element represented by the given sysfs_dirent |
181 | */ | 171 | */ |
@@ -238,6 +228,10 @@ void sysfs_hash_and_remove(struct dentry * dir, const char * name) | |||
238 | struct sysfs_dirent * sd; | 228 | struct sysfs_dirent * sd; |
239 | struct sysfs_dirent * parent_sd = dir->d_fsdata; | 229 | struct sysfs_dirent * parent_sd = dir->d_fsdata; |
240 | 230 | ||
231 | if (dir->d_inode == NULL) | ||
232 | /* no inode means this hasn't been made visible yet */ | ||
233 | return; | ||
234 | |||
241 | down(&dir->d_inode->i_sem); | 235 | down(&dir->d_inode->i_sem); |
242 | list_for_each_entry(sd, &parent_sd->s_children, s_sibling) { | 236 | list_for_each_entry(sd, &parent_sd->s_children, s_sibling) { |
243 | if (!sd->s_element) | 237 | if (!sd->s_element) |