|
@@ -11,6 +11,7 @@
|
|
|
#define SUNRPC_SVC_H
|
|
|
|
|
|
#include <linux/in.h>
|
|
|
+#include <linux/in6.h>
|
|
|
#include <linux/sunrpc/types.h>
|
|
|
#include <linux/sunrpc/xdr.h>
|
|
|
#include <linux/sunrpc/auth.h>
|
|
@@ -191,7 +192,13 @@ static inline void svc_putu32(struct kvec *iov, __be32 val)
|
|
|
iov->iov_len += sizeof(__be32);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+union svc_addr_u {
|
|
|
+ struct in_addr addr;
|
|
|
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
|
|
|
+ struct in6_addr addr6;
|
|
|
+#endif
|
|
|
+};
|
|
|
+
|
|
|
/*
|
|
|
* The context of a single thread, including the request currently being
|
|
|
* processed.
|
|
@@ -227,8 +234,8 @@ struct svc_rqst {
|
|
|
unsigned short
|
|
|
rq_secure : 1; /* secure port */
|
|
|
|
|
|
-
|
|
|
- __be32 rq_daddr; /* dest addr of request - reply from here */
|
|
|
+ union svc_addr_u rq_daddr; /* dest addr of request
|
|
|
+ * - reply from here */
|
|
|
|
|
|
void * rq_argp; /* decoded arguments */
|
|
|
void * rq_resp; /* xdr'd results */
|
|
@@ -308,7 +315,7 @@ struct svc_deferred_req {
|
|
|
struct svc_sock *svsk;
|
|
|
struct sockaddr_storage addr; /* where reply must go */
|
|
|
size_t addrlen;
|
|
|
- __be32 daddr; /* where reply must come from */
|
|
|
+ union svc_addr_u daddr; /* where reply must come from */
|
|
|
struct cache_deferred_req handle;
|
|
|
int argslen;
|
|
|
__be32 args[0];
|