diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2015-01-29 00:27:57 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2015-02-17 22:16:46 -0500 |
commit | 28444a2bde8d1695447eb51362b46cf1e49b9c21 (patch) | |
tree | d83ff6daf9f180a0420b1c766815f7cbce5bb4fd /fs | |
parent | 1cf97d0d3a1b0232a3fde25deac3b3fd288627e2 (diff) |
configfs_add_file: fold into its sole caller
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/configfs/configfs_internal.h | 1 | ||||
-rw-r--r-- | fs/configfs/file.c | 28 |
2 files changed, 10 insertions, 19 deletions
diff --git a/fs/configfs/configfs_internal.h b/fs/configfs/configfs_internal.h index ed0fdd156880..b65d1ef532d5 100644 --- a/fs/configfs/configfs_internal.h +++ b/fs/configfs/configfs_internal.h | |||
@@ -76,7 +76,6 @@ extern int configfs_make_dirent(struct configfs_dirent *, | |||
76 | struct dentry *, void *, umode_t, int); | 76 | struct dentry *, void *, umode_t, int); |
77 | extern int configfs_dirent_is_ready(struct configfs_dirent *); | 77 | extern int configfs_dirent_is_ready(struct configfs_dirent *); |
78 | 78 | ||
79 | extern int configfs_add_file(struct dentry *, const struct configfs_attribute *, int); | ||
80 | extern void configfs_hash_and_remove(struct dentry * dir, const char * name); | 79 | extern void configfs_hash_and_remove(struct dentry * dir, const char * name); |
81 | 80 | ||
82 | extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); | 81 | extern const unsigned char * configfs_get_name(struct configfs_dirent *sd); |
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 | ||