• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/net/sunrpc/

Lines Matching defs:rqstp

104 static void svc_release_skb(struct svc_rqst *rqstp)
106 struct sk_buff *skb = rqstp->rq_xprt_ctxt;
110 container_of(rqstp->rq_xprt, struct svc_sock, sk_xprt);
111 rqstp->rq_xprt_ctxt = NULL;
113 dprintk("svc: service %p, releasing skb %p\n", rqstp, skb);
125 static void svc_set_cmsg_data(struct svc_rqst *rqstp, struct cmsghdr *cmh)
128 container_of(rqstp->rq_xprt, struct svc_sock, sk_xprt);
136 pki->ipi_spec_dst.s_addr = rqstp->rq_daddr.addr.s_addr;
148 &rqstp->rq_daddr.addr6);
217 static int svc_sendto(struct svc_rqst *rqstp, struct xdr_buf *xdr)
220 container_of(rqstp->rq_xprt, struct svc_sock, sk_xprt);
232 if (rqstp->rq_prot == IPPROTO_UDP) {
234 .msg_name = &rqstp->rq_addr,
235 .msg_namelen = rqstp->rq_addrlen,
241 svc_set_cmsg_data(rqstp, cmh);
249 len = svc_send_common(sock, xdr, rqstp->rq_respages[0], headoff,
250 rqstp->rq_respages[0], tailoff);
255 xdr->len, len, svc_print_addr(rqstp, buf, sizeof(buf)));
360 static int svc_recvfrom(struct svc_rqst *rqstp, struct kvec *iov, int nr,
364 container_of(rqstp->rq_xprt, struct svc_sock, sk_xprt);
370 rqstp->rq_xprt_hlen = 0;
448 static int svc_udp_get_dest_address4(struct svc_rqst *rqstp,
454 rqstp->rq_daddr.addr.s_addr = pki->ipi_spec_dst.s_addr;
461 static int svc_udp_get_dest_address6(struct svc_rqst *rqstp,
467 ipv6_addr_copy(&rqstp->rq_daddr.addr6, &pki->ipi6_addr);
472 * Copy the UDP datagram's destination address to the rqstp structure.
478 static int svc_udp_get_dest_address(struct svc_rqst *rqstp,
483 return svc_udp_get_dest_address4(rqstp, cmh);
485 return svc_udp_get_dest_address6(rqstp, cmh);
494 static int svc_udp_recvfrom(struct svc_rqst *rqstp)
497 container_of(rqstp->rq_xprt, struct svc_sock, sk_xprt);
506 .msg_name = svc_addr(rqstp),
542 len = svc_addr_len(svc_addr(rqstp));
545 rqstp->rq_addrlen = len;
555 rqstp->rq_arg.len = len;
557 rqstp->rq_prot = IPPROTO_UDP;
559 if (!svc_udp_get_dest_address(rqstp, cmh)) {
572 if (csum_partial_copy_to_xdr(&rqstp->rq_arg, skb)) {
582 rqstp->rq_arg.head[0].iov_base = skb->data +
584 rqstp->rq_arg.head[0].iov_len = len;
589 rqstp->rq_xprt_ctxt = skb;
592 rqstp->rq_arg.page_base = 0;
593 if (len <= rqstp->rq_arg.head[0].iov_len) {
594 rqstp->rq_arg.head[0].iov_len = len;
595 rqstp->rq_arg.page_len = 0;
596 rqstp->rq_respages = rqstp->rq_pages+1;
598 rqstp->rq_arg.page_len = len - rqstp->rq_arg.head[0].iov_len;
599 rqstp->rq_respages = rqstp->rq_pages + 1 +
600 DIV_ROUND_UP(rqstp->rq_arg.page_len, PAGE_SIZE);
610 svc_udp_sendto(struct svc_rqst *rqstp)
614 error = svc_sendto(rqstp, &rqstp->rq_res);
617 error = svc_sendto(rqstp, &rqstp->rq_res);
622 static void svc_udp_prep_reply_hdr(struct svc_rqst *rqstp)
867 static int svc_tcp_recv_record(struct svc_sock *svsk, struct svc_rqst *rqstp)
897 if ((len = svc_recvfrom(rqstp, &iov, 1, want)) < 0)
950 static int svc_process_calldir(struct svc_sock *svsk, struct svc_rqst *rqstp,
959 len = svc_recvfrom(rqstp, vec, 1, 8);
963 p = (u32 *)rqstp->rq_arg.head[0].iov_base;
969 vec[0] = rqstp->rq_arg.head[0];
981 vec[0] = rqstp->rq_arg.head[0];
989 rqstp->rq_arg.head[0].iov_base, 8);
1004 static int svc_tcp_recvfrom(struct svc_rqst *rqstp)
1007 container_of(rqstp->rq_xprt, struct svc_sock, sk_xprt);
1019 len = svc_tcp_recv_record(svsk, rqstp);
1023 vec = rqstp->rq_vec;
1024 vec[0] = rqstp->rq_arg.head[0];
1036 len = svc_process_calldir(svsk, rqstp, &req, vec);
1046 page_address(rqstp->rq_pages[pnum]);
1051 rqstp->rq_respages = &rqstp->rq_pages[pnum];
1054 len = svc_recvfrom(rqstp, vec, pnum, len);
1069 rqstp->rq_arg.len = len;
1070 rqstp->rq_arg.page_base = 0;
1071 if (len <= rqstp->rq_arg.head[0].iov_len) {
1072 rqstp->rq_arg.head[0].iov_len = len;
1073 rqstp->rq_arg.page_len = 0;
1075 rqstp->rq_arg.page_len = len - rqstp->rq_arg.head[0].iov_len;
1078 rqstp->rq_xprt_ctxt = NULL;
1079 rqstp->rq_prot = IPPROTO_TCP;
1086 svc_xprt_copy_addrs(rqstp, &svsk->sk_xprt);
1109 static int svc_tcp_sendto(struct svc_rqst *rqstp)
1111 struct xdr_buf *xbufp = &rqstp->rq_res;
1122 if (test_bit(XPT_DEAD, &rqstp->rq_xprt->xpt_flags))
1125 sent = svc_sendto(rqstp, &rqstp->rq_res);
1130 rqstp->rq_xprt->xpt_server->sv_name,
1133 set_bit(XPT_CLOSE, &rqstp->rq_xprt->xpt_flags);
1134 svc_xprt_enqueue(rqstp->rq_xprt);
1143 static void svc_tcp_prep_reply_hdr(struct svc_rqst *rqstp)
1145 struct kvec *resv = &rqstp->rq_res.head[0];