Patchwork [net-next,16/20] tipc: recode getsockopt error handling for better readability

login
register
mail settings
Submitter Paul Gortmaker
Date Jan. 1, 2011, 4:59 a.m.
Message ID <1293857975-30267-17-git-send-email-paul.gortmaker@windriver.com>
Download mbox | patch
Permalink /patch/77125/
State Accepted
Delegated to: David Miller
Headers show

Comments

Paul Gortmaker - Jan. 1, 2011, 4:59 a.m.
The existing code for the copy to user and error handling at the
end of getsockopt isn't easy to follow, due to the excessive use
of if/else.  By simply using return where appropriate, it can be
made smaller and easier to follow at the same time.

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
---
 net/tipc/socket.c |   22 +++++++++-------------
 1 files changed, 9 insertions(+), 13 deletions(-)

Patch

diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index f972c0b..1a2eb23 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -1755,20 +1755,16 @@  static int getsockopt(struct socket *sock,
 
 	release_sock(sk);
 
-	if (res) {
-		/* "get" failed */
-	}
-	else if (len < sizeof(value)) {
-		res = -EINVAL;
-	}
-	else if (copy_to_user(ov, &value, sizeof(value))) {
-		res = -EFAULT;
-	}
-	else {
-		res = put_user(sizeof(value), ol);
-	}
+	if (res)
+		return res;	/* "get" failed */
 
-	return res;
+	if (len < sizeof(value))
+		return -EINVAL;
+
+	if (copy_to_user(ov, &value, sizeof(value)))
+		return -EFAULT;
+
+	return put_user(sizeof(value), ol);
 }
 
 /**