diff options
Diffstat (limited to 'fs/configfs/file.c')
-rw-r--r-- | fs/configfs/file.c | 28 |
1 files changed, 10 insertions, 18 deletions
diff --git a/fs/configfs/file.c b/fs/configfs/file.c index 1d1c41f1014d..56d2cdc9ae0a 100644 --- a/fs/configfs/file.c +++ b/fs/configfs/file.c | |||
@@ -313,21 +313,6 @@ const struct file_operations configfs_file_operations = { | |||
313 | .release = configfs_release, | 313 | .release = configfs_release, |
314 | }; | 314 | }; |
315 | 315 | ||
316 | |||
317 | int configfs_add_file(struct dentry * dir, const struct configfs_attribute * attr, int type) | ||
318 | { | ||
319 | struct configfs_dirent * parent_sd = dir->d_fsdata; | ||
320 | umode_t mode = (attr->ca_mode & S_IALLUGO) | S_IFREG; | ||
321 | int error = 0; | ||
322 | |||
323 | mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_NORMAL); | ||
324 | error = configfs_make_dirent(parent_sd, NULL, (void *) attr, mode, type); | ||
325 | mutex_unlock(&dir->d_inode->i_mutex); | ||
326 | |||
327 | return error; | ||
328 | } | ||
329 | |||
330 | |||
331 | /** | 316 | /** |
332 | * configfs_create_file - create an attribute file for an item. | 317 | * configfs_create_file - create an attribute file for an item. |
333 | * @item: item we're creating for. | 318 | * @item: item we're creating for. |
@@ -336,9 +321,16 @@ int configfs_add_file(struct dentry * dir, const struct configfs_attribute * att | |||
336 | 321 | ||
337 | int configfs_create_file(struct config_item * item, const struct configfs_attribute * attr) | 322 | int configfs_create_file(struct config_item * item, const struct configfs_attribute * attr) |
338 | { | 323 | { |
339 | BUG_ON(!item || !item->ci_dentry || !attr); | 324 | struct dentry *dir = item->ci_dentry; |
325 | struct configfs_dirent *parent_sd = dir->d_fsdata; | ||
326 | umode_t mode = (attr->ca_mode & S_IALLUGO) | S_IFREG; | ||
327 | int error = 0; | ||
340 | 328 | ||
341 | return configfs_add_file(item->ci_dentry, attr, | 329 | mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_NORMAL); |
342 | CONFIGFS_ITEM_ATTR); | 330 | error = configfs_make_dirent(parent_sd, NULL, (void *) attr, mode, |
331 | CONFIGFS_ITEM_ATTR); | ||
332 | mutex_unlock(&dir->d_inode->i_mutex); | ||
333 | |||
334 | return error; | ||
343 | } | 335 | } |
344 | 336 | ||