| .. | .. |
|---|
| 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); |
|---|