From: Tejun Heo <htejun@gmail.com>
To: Gabriel C <nix.or.die@googlemail.com>
Cc: Satyam Sharma <satyam.sharma@gmail.com>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Christoph Lameter <clameter@sgi.com>,
gregkh@suse.de, miles.lane@gmail.com
Subject: [PATCH] sysfs: cosmetic clean up on node creation failure paths
Date: Wed, 18 Jul 2007 16:38:11 +0900 [thread overview]
Message-ID: <20070718073811.GA22374@htj.dyndns.org> (raw)
In-Reply-To: <20070718071445.GI23568@htj.dyndns.org>
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>
---
fs/sysfs/dir.c | 12 +++++++-----
fs/sysfs/file.c | 9 +++++----
fs/sysfs/symlink.c | 10 ++++++----
3 files changed, 18 insertions(+), 13 deletions(-)
Index: work/fs/sysfs/dir.c
===================================================================
--- work.orig/fs/sysfs/dir.c
+++ work/fs/sysfs/dir.c
@@ -698,17 +698,19 @@ static int create_dir(struct kobject *ko
/* link in */
sysfs_addrm_start(&acxt, parent_sd);
+
if (!sysfs_find_dirent(parent_sd, name)) {
sysfs_add_one(&acxt, sd);
sysfs_link_sibling(sd);
}
- if (sysfs_addrm_finish(&acxt)) {
- *p_sd = sd;
- return 0;
+
+ if (!sysfs_addrm_finish(&acxt)) {
+ sysfs_put(sd);
+ return -EEXIST;
}
- sysfs_put(sd);
- return -EEXIST;
+ *p_sd = sd;
+ return 0;
}
int sysfs_create_subdir(struct kobject *kobj, const char *name,
Index: work/fs/sysfs/file.c
===================================================================
--- work.orig/fs/sysfs/file.c
+++ work/fs/sysfs/file.c
@@ -410,11 +410,12 @@ int sysfs_add_file(struct sysfs_dirent *
sysfs_link_sibling(sd);
}
- if (sysfs_addrm_finish(&acxt))
- return 0;
+ if (!sysfs_addrm_finish(&acxt)) {
+ sysfs_put(sd);
+ return -EEXIST;
+ }
- sysfs_put(sd);
- return -EEXIST;
+ return 0;
}
Index: work/fs/sysfs/symlink.c
===================================================================
--- work.orig/fs/sysfs/symlink.c
+++ work/fs/sysfs/symlink.c
@@ -97,11 +97,13 @@ int sysfs_create_link(struct kobject * k
sysfs_link_sibling(sd);
}
- if (sysfs_addrm_finish(&acxt))
- return 0;
+ if (!sysfs_addrm_finish(&acxt)) {
+ error = -EEXIST;
+ goto out_put;
+ }
+
+ return 0;
- error = -EEXIST;
- /* fall through */
out_put:
sysfs_put(target_sd);
sysfs_put(sd);
next prev parent reply other threads:[~2007-07-18 7:38 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-14 12:18 Oops while modprobing phy fixed module Gabriel C
2007-07-14 12:44 ` Gabriel C
2007-07-15 5:39 ` Satyam Sharma
2007-07-15 17:42 ` Gabriel C
2007-07-15 20:32 ` Gabriel C
2007-07-15 21:14 ` Satyam Sharma
2007-07-15 22:19 ` Gabriel C
2007-07-16 12:17 ` Gabriel C
2007-07-16 15:19 ` Satyam Sharma
2007-07-16 15:41 ` Gabriel C
2007-07-16 16:18 ` Gabriel C
2007-07-16 16:54 ` Gabriel C
2007-07-16 18:23 ` Tejun Heo
2007-07-16 18:32 ` Gabriel C
2007-07-16 19:11 ` Gabriel C
2007-07-16 19:13 ` Gabriel C
2007-07-18 5:51 ` Tejun Heo
2007-07-23 19:53 ` Christoph Lameter
2007-07-24 6:35 ` Tejun Heo
2007-07-18 7:14 ` [PATCH] sysfs: kill an extra put in sysfs_create_link() failure path Tejun Heo
2007-07-18 7:38 ` Tejun Heo [this message]
2007-07-18 11:40 ` [PATCH] sysfs: cosmetic clean up on node creation failure paths Cornelia Huck
2007-07-18 11:16 ` [PATCH] sysfs: kill an extra put in sysfs_create_link() failure path Cornelia Huck
2007-07-18 14:29 ` Miles Lane
2007-07-18 14:48 ` Satyam Sharma
2007-07-18 14:57 ` Tejun Heo
2007-07-18 15:16 ` Satyam Sharma
2007-07-18 15:30 ` Satyam Sharma
2007-07-18 15:53 ` Tejun Heo
2007-07-18 16:08 ` Satyam Sharma
2007-07-18 16:20 ` Tejun Heo
2007-07-18 15:43 ` Tejun Heo
2007-07-18 16:06 ` Satyam Sharma
2007-07-18 16:30 ` Tejun Heo
2007-07-18 16:36 ` Satyam Sharma
2007-07-18 16:41 ` Tejun Heo
2007-07-18 16:49 ` Satyam Sharma
2007-07-18 16:59 ` Miles Lane
2007-07-23 19:52 ` Oops while modprobing phy fixed module Christoph Lameter
2007-07-16 17:43 ` Vitaly Bordug
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070718073811.GA22374@htj.dyndns.org \
--to=htejun@gmail.com \
--cc=clameter@sgi.com \
--cc=gregkh@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=miles.lane@gmail.com \
--cc=nix.or.die@googlemail.com \
--cc=satyam.sharma@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®