Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c0ef877b authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by David S. Miller
Browse files

[NET]: Move sock_valbool_flag to socket.c



The sock_valbool_flag() helper is used in setsockopt to
set or reset some flag on the sock. This helper is required
in the net/socket.c only, so move it there.

Besides, patch two places in sys_setsockopt() that repeat
this helper functionality manually.

Since this is not a bugfix, but a trivial cleanup, I
prepared this patch against net-2.6.25, but it also
applies (with a single offset) to the latest net-2.6.

Signed-off-by: default avatarPavel Emelyanov <xemul@openvz.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent de0fa95c
Loading
Loading
Loading
Loading
+0 −8
Original line number Diff line number Diff line
@@ -1396,14 +1396,6 @@ extern int net_msg_warn;
				lock_sock(sk); \
				}

static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool)
{
	if (valbool)
		sock_set_flag(sk, bit);
	else
		sock_reset_flag(sk, bit);
}

extern __u32 sysctl_wmem_max;
extern __u32 sysctl_rmem_max;

+11 −9
Original line number Diff line number Diff line
@@ -419,6 +419,14 @@ static int sock_bindtodevice(struct sock *sk, char __user *optval, int optlen)
	return ret;
}

static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool)
{
	if (valbool)
		sock_set_flag(sk, bit);
	else
		sock_reset_flag(sk, bit);
}

/*
 *	This is meant for all protocols to use and covers goings on
 *	at the socket level. Everything here is generic.
@@ -463,11 +471,8 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
	case SO_DEBUG:
		if (val && !capable(CAP_NET_ADMIN)) {
			ret = -EACCES;
		}
		else if (valbool)
			sock_set_flag(sk, SOCK_DBG);
		else
			sock_reset_flag(sk, SOCK_DBG);
		} else
			sock_valbool_flag(sk, SOCK_DBG, valbool);
		break;
	case SO_REUSEADDR:
		sk->sk_reuse = valbool;
@@ -477,10 +482,7 @@ int sock_setsockopt(struct socket *sock, int level, int optname,
		ret = -ENOPROTOOPT;
		break;
	case SO_DONTROUTE:
		if (valbool)
			sock_set_flag(sk, SOCK_LOCALROUTE);
		else
			sock_reset_flag(sk, SOCK_LOCALROUTE);
		sock_valbool_flag(sk, SOCK_LOCALROUTE, valbool);
		break;
	case SO_BROADCAST:
		sock_valbool_flag(sk, SOCK_BROADCAST, valbool);