aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2010-12-31 13:59:31 -0500
committerDavid S. Miller <davem@davemloft.net>2011-01-01 16:57:55 -0500
commit25860c3bd5bd1db236d4fd5826d76127d677dc28 (patch)
tree68ad705820b95452a49574e056c89d61cd1b69e5 /net
parente83504f72456809cdbdbc91700d3ba6370c9da1c (diff)
tipc: recode getsockopt error handling for better readability
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> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
-rw-r--r--net/tipc/socket.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index f972c0b4a719..1a2eb23c6223 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -1755,20 +1755,16 @@ static int getsockopt(struct socket *sock,
1755 1755
1756 release_sock(sk); 1756 release_sock(sk);
1757 1757
1758 if (res) { 1758 if (res)
1759 /* "get" failed */ 1759 return res; /* "get" failed */
1760 }
1761 else if (len < sizeof(value)) {
1762 res = -EINVAL;
1763 }
1764 else if (copy_to_user(ov, &value, sizeof(value))) {
1765 res = -EFAULT;
1766 }
1767 else {
1768 res = put_user(sizeof(value), ol);
1769 }
1770 1760
1771 return res; 1761 if (len < sizeof(value))
1762 return -EINVAL;
1763
1764 if (copy_to_user(ov, &value, sizeof(value)))
1765 return -EFAULT;
1766
1767 return put_user(sizeof(value), ol);
1772} 1768}
1773 1769
1774/** 1770/**