summaryrefslogtreecommitdiffstats
path: root/sys/rpc/rpc_generic.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/rpc/rpc_generic.c')
-rw-r--r--sys/rpc/rpc_generic.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sys/rpc/rpc_generic.c b/sys/rpc/rpc_generic.c
index 1c6aa82..fd39350 100644
--- a/sys/rpc/rpc_generic.c
+++ b/sys/rpc/rpc_generic.c
@@ -187,7 +187,9 @@ __rpc_socket2sockinfo(struct socket *so, struct __rpc_sockinfo *sip)
struct sockopt opt;
int error;
+ CURVNET_SET(so->so_vnet);
error = so->so_proto->pr_usrreqs->pru_sockaddr(so, &sa);
+ CURVNET_RESTORE();
if (error)
return 0;
@@ -825,7 +827,6 @@ bindresvport(struct socket *so, struct sockaddr *sa)
sa->sa_len = salen;
if (*portp == 0) {
- CURVNET_SET(so->so_vnet);
bzero(&opt, sizeof(opt));
opt.sopt_dir = SOPT_GET;
opt.sopt_level = proto;
@@ -834,14 +835,12 @@ bindresvport(struct socket *so, struct sockaddr *sa)
opt.sopt_valsize = sizeof(old);
error = sogetopt(so, &opt);
if (error) {
- CURVNET_RESTORE();
goto out;
}
opt.sopt_dir = SOPT_SET;
opt.sopt_val = &portlow;
error = sosetopt(so, &opt);
- CURVNET_RESTORE();
if (error)
goto out;
}
@@ -852,9 +851,7 @@ bindresvport(struct socket *so, struct sockaddr *sa)
if (error) {
opt.sopt_dir = SOPT_SET;
opt.sopt_val = &old;
- CURVNET_SET(so->so_vnet);
sosetopt(so, &opt);
- CURVNET_RESTORE();
}
}
out:
OpenPOWER on IntegriCloud