net: ipmr: fix setsockopt error return

We can have both errors and we'll return the second one, fix it to
return an error at a time as it's normal. I've overlooked this in my
previous set.

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Nikolay Aleksandrov 2015-11-26 15:23:49 +01:00 committed by David S. Miller
parent 1973a4ea6c
commit 42e6b89ce4
1 changed files with 6 additions and 4 deletions

View File

@ -1284,12 +1284,14 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval,
switch (optname) { switch (optname) {
case MRT_INIT: case MRT_INIT:
if (optlen != sizeof(int)) if (optlen != sizeof(int)) {
ret = -EINVAL; ret = -EINVAL;
if (rtnl_dereference(mrt->mroute_sk))
ret = -EADDRINUSE;
if (ret)
break; break;
}
if (rtnl_dereference(mrt->mroute_sk)) {
ret = -EADDRINUSE;
break;
}
ret = ip_ra_control(sk, 1, mrtsock_destruct); ret = ip_ra_control(sk, 1, mrtsock_destruct);
if (ret == 0) { if (ret == 0) {