diff options
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r-- | fs/nfsd/nfs4state.c | 16 |
1 files changed, 1 insertions, 15 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index 0cd346477f29..e7f83bd9b4a8 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c | |||
@@ -1257,20 +1257,6 @@ find_unconfirmed_client_by_str(const char *dname, unsigned int hashval) | |||
1257 | return NULL; | 1257 | return NULL; |
1258 | } | 1258 | } |
1259 | 1259 | ||
1260 | static void rpc_svcaddr2sockaddr(struct sockaddr *sa, unsigned short family, union svc_addr_u *svcaddr) | ||
1261 | { | ||
1262 | switch (family) { | ||
1263 | case AF_INET: | ||
1264 | ((struct sockaddr_in *)sa)->sin_family = AF_INET; | ||
1265 | ((struct sockaddr_in *)sa)->sin_addr = svcaddr->addr; | ||
1266 | return; | ||
1267 | case AF_INET6: | ||
1268 | ((struct sockaddr_in6 *)sa)->sin6_family = AF_INET6; | ||
1269 | ((struct sockaddr_in6 *)sa)->sin6_addr = svcaddr->addr6; | ||
1270 | return; | ||
1271 | } | ||
1272 | } | ||
1273 | |||
1274 | static void | 1260 | static void |
1275 | gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se, struct svc_rqst *rqstp) | 1261 | gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se, struct svc_rqst *rqstp) |
1276 | { | 1262 | { |
@@ -1302,7 +1288,7 @@ gen_callback(struct nfs4_client *clp, struct nfsd4_setclientid *se, struct svc_r | |||
1302 | 1288 | ||
1303 | conn->cb_prog = se->se_callback_prog; | 1289 | conn->cb_prog = se->se_callback_prog; |
1304 | conn->cb_ident = se->se_callback_ident; | 1290 | conn->cb_ident = se->se_callback_ident; |
1305 | rpc_svcaddr2sockaddr((struct sockaddr *)&conn->cb_saddr, expected_family, &rqstp->rq_daddr); | 1291 | memcpy(&conn->cb_saddr, &rqstp->rq_daddr, rqstp->rq_daddrlen); |
1306 | return; | 1292 | return; |
1307 | out_err: | 1293 | out_err: |
1308 | conn->cb_addr.ss_family = AF_UNSPEC; | 1294 | conn->cb_addr.ss_family = AF_UNSPEC; |