.. | .. |
---|
20 | 20 | struct svc_xprt *(*xpo_accept)(struct svc_xprt *); |
---|
21 | 21 | int (*xpo_has_wspace)(struct svc_xprt *); |
---|
22 | 22 | int (*xpo_recvfrom)(struct svc_rqst *); |
---|
23 | | - void (*xpo_prep_reply_hdr)(struct svc_rqst *); |
---|
24 | 23 | int (*xpo_sendto)(struct svc_rqst *); |
---|
| 24 | + int (*xpo_read_payload)(struct svc_rqst *, unsigned int, |
---|
| 25 | + unsigned int); |
---|
25 | 26 | void (*xpo_release_rqst)(struct svc_rqst *); |
---|
26 | 27 | void (*xpo_detach)(struct svc_xprt *); |
---|
27 | 28 | void (*xpo_free)(struct svc_xprt *); |
---|
.. | .. |
---|
84 | 85 | struct sockaddr_storage xpt_remote; /* remote peer's address */ |
---|
85 | 86 | size_t xpt_remotelen; /* length of address */ |
---|
86 | 87 | char xpt_remotebuf[INET6_ADDRSTRLEN + 10]; |
---|
87 | | - struct rpc_wait_queue xpt_bc_pending; /* backchannel wait queue */ |
---|
88 | 88 | struct list_head xpt_users; /* callbacks on free */ |
---|
89 | 89 | |
---|
90 | 90 | struct net *xpt_net; |
---|
| 91 | + const struct cred *xpt_cred; |
---|
91 | 92 | struct rpc_xprt *xpt_bc_xprt; /* NFSv4.1 backchannel */ |
---|
92 | 93 | struct rpc_xprt_switch *xpt_bc_xps; /* NFSv4.1 backchannel */ |
---|
93 | 94 | }; |
---|
.. | .. |
---|
116 | 117 | return 0; |
---|
117 | 118 | } |
---|
118 | 119 | |
---|
| 120 | +static inline bool svc_xprt_is_dead(const struct svc_xprt *xprt) |
---|
| 121 | +{ |
---|
| 122 | + return (test_bit(XPT_DEAD, &xprt->xpt_flags) != 0) || |
---|
| 123 | + (test_bit(XPT_CLOSE, &xprt->xpt_flags) != 0); |
---|
| 124 | +} |
---|
| 125 | + |
---|
119 | 126 | int svc_reg_xprt_class(struct svc_xprt_class *); |
---|
120 | 127 | void svc_unreg_xprt_class(struct svc_xprt_class *); |
---|
121 | 128 | void svc_xprt_init(struct net *, struct svc_xprt_class *, struct svc_xprt *, |
---|
122 | 129 | struct svc_serv *); |
---|
123 | 130 | int svc_create_xprt(struct svc_serv *, const char *, struct net *, |
---|
124 | | - const int, const unsigned short, int); |
---|
| 131 | + const int, const unsigned short, int, |
---|
| 132 | + const struct cred *); |
---|
125 | 133 | void svc_xprt_do_enqueue(struct svc_xprt *xprt); |
---|
126 | 134 | void svc_xprt_enqueue(struct svc_xprt *xprt); |
---|
127 | 135 | void svc_xprt_put(struct svc_xprt *xprt); |
---|