aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorTejun Heo <htejun@gmail.com>2007-07-18 03:38:11 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2007-07-18 18:49:50 -0400
commit967e35dcc9ac194b4a6fad69a5a51f93d69bb0d1 (patch)
tree218c6fc093ec110ee6f4c5d7f0aae448e5f82173 /fs
parenta1da4dfe35bc36c3bc9716d995c85b7983c38a76 (diff)
sysfs: cosmetic clean up on node creation failure paths
Node addition failure is detected by testing return value of sysfs_addfm_finish() which returns the number of added and removed nodes. As the function is called as the last step of addition right on top of error handling block, the if blocks looked like the following. if (sysfs_addrm_finish(&acxt)) success handling, usually return; /* fall through to error handling */ This is the opposite of usual convention in sysfs and makes the code difficult to understand. This patch inverts the test and makes those blocks look more like others. Signed-off-by: Tejun Heo <htejun@gmail.com> Cc: Gabriel C <nix.or.die@googlemail.com> Cc: Miles Lane <miles.lane@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'fs')
-rw-r--r--fs/sysfs/dir.c12
-rw-r--r--fs/sysfs/file.c9
-rw-r--r--fs/sysfs/symlink.c10
3 files changed, 18 insertions, 13 deletions
diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
index 2e6775a836f2..048e6054c2fd 100644
--- a/fs/sysfs/dir.c
+++ b/fs/sysfs/dir.c
@@ -699,17 +699,19 @@ static int create_dir(struct kobject *kobj, struct sysfs_dirent *parent_sd,
699 699
700 /* link in */ 700 /* link in */
701 sysfs_addrm_start(&acxt, parent_sd); 701 sysfs_addrm_start(&acxt, parent_sd);
702
702 if (!sysfs_find_dirent(parent_sd, name)) { 703 if (!sysfs_find_dirent(parent_sd, name)) {
703 sysfs_add_one(&acxt, sd); 704 sysfs_add_one(&acxt, sd);
704 sysfs_link_sibling(sd); 705 sysfs_link_sibling(sd);
705 } 706 }
706 if (sysfs_addrm_finish(&acxt)) { 707
707 *p_sd = sd; 708 if (!sysfs_addrm_finish(&acxt)) {
708 return 0; 709 sysfs_put(sd);
710 return -EEXIST;
709 } 711 }
710 712
711 sysfs_put(sd); 713 *p_sd = sd;
712 return -EEXIST; 714 return 0;
713} 715}
714 716
715int sysfs_create_subdir(struct kobject *kobj, const char *name, 717int sysfs_create_subdir(struct kobject *kobj, const char *name,
diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
index cc497994b2a8..3e1cc062a740 100644
--- a/fs/sysfs/file.c
+++ b/fs/sysfs/file.c
@@ -410,11 +410,12 @@ int sysfs_add_file(struct sysfs_dirent *dir_sd, const struct attribute *attr,
410 sysfs_link_sibling(sd); 410 sysfs_link_sibling(sd);
411 } 411 }
412 412
413 if (sysfs_addrm_finish(&acxt)) 413 if (!sysfs_addrm_finish(&acxt)) {
414 return 0; 414 sysfs_put(sd);
415 return -EEXIST;
416 }
415 417
416 sysfs_put(sd); 418 return 0;
417 return -EEXIST;
418} 419}
419 420
420 421
diff --git a/fs/sysfs/symlink.c b/fs/sysfs/symlink.c
index d056e9695cd6..4ce687f0b5d0 100644
--- a/fs/sysfs/symlink.c
+++ b/fs/sysfs/symlink.c
@@ -97,11 +97,13 @@ int sysfs_create_link(struct kobject * kobj, struct kobject * target, const char
97 sysfs_link_sibling(sd); 97 sysfs_link_sibling(sd);
98 } 98 }
99 99
100 if (sysfs_addrm_finish(&acxt)) 100 if (!sysfs_addrm_finish(&acxt)) {
101 return 0; 101 error = -EEXIST;
102 goto out_put;
103 }
104
105 return 0;
102 106
103 error = -EEXIST;
104 /* fall through */
105 out_put: 107 out_put:
106 sysfs_put(target_sd); 108 sysfs_put(target_sd);
107 sysfs_put(sd); 109 sysfs_put(sd);