aboutsummaryrefslogtreecommitdiffstats
path: root/fs/configfs/dir.c
diff options
context:
space:
mode:
authorJoel Becker <joel.becker@oracle.com>2008-07-17 17:53:48 -0400
committerJoel Becker <joel.becker@oracle.com>2008-07-17 17:53:48 -0400
commitf89ab8619e5320cc9c2576f5f8dcbaf6c0ba3950 (patch)
treee703050b232c76de7cb25afd63a2b4dd885c4bb9 /fs/configfs/dir.c
parent5b664cb235e97afbf34db9c4d77f08ebd725335e (diff)
Revert "configfs: Allow ->make_item() and ->make_group() to return detailed errors."
This reverts commit 11c3b79218390a139f2d474ee1e983a672d5839a. The code will move to PTR_ERR(). Signed-off-by: Joel Becker <joel.becker@oracle.com>
Diffstat (limited to 'fs/configfs/dir.c')
-rw-r--r--fs/configfs/dir.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
index 0e64312a084c..614e382a6049 100644
--- a/fs/configfs/dir.c
+++ b/fs/configfs/dir.c
@@ -1073,24 +1073,25 @@ static int configfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
1073 group = NULL; 1073 group = NULL;
1074 item = NULL; 1074 item = NULL;
1075 if (type->ct_group_ops->make_group) { 1075 if (type->ct_group_ops->make_group) {
1076 ret = type->ct_group_ops->make_group(to_config_group(parent_item), name, &group); 1076 group = type->ct_group_ops->make_group(to_config_group(parent_item), name);
1077 if (!ret) { 1077 if (group) {
1078 link_group(to_config_group(parent_item), group); 1078 link_group(to_config_group(parent_item), group);
1079 item = &group->cg_item; 1079 item = &group->cg_item;
1080 } 1080 }
1081 } else { 1081 } else {
1082 ret = type->ct_group_ops->make_item(to_config_group(parent_item), name, &item); 1082 item = type->ct_group_ops->make_item(to_config_group(parent_item), name);
1083 if (!ret) 1083 if (item)
1084 link_obj(parent_item, item); 1084 link_obj(parent_item, item);
1085 } 1085 }
1086 mutex_unlock(&subsys->su_mutex); 1086 mutex_unlock(&subsys->su_mutex);
1087 1087
1088 kfree(name); 1088 kfree(name);
1089 if (ret) { 1089 if (!item) {
1090 /* 1090 /*
1091 * If ret != 0, then link_obj() was never called. 1091 * If item == NULL, then link_obj() was never called.
1092 * There are no extra references to clean up. 1092 * There are no extra references to clean up.
1093 */ 1093 */
1094 ret = -ENOMEM;
1094 goto out_put; 1095 goto out_put;
1095 } 1096 }
1096 1097