mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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);

  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®