hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/include/linux/sunrpc/svc_xprt.h
....@@ -20,8 +20,9 @@
2020 struct svc_xprt *(*xpo_accept)(struct svc_xprt *);
2121 int (*xpo_has_wspace)(struct svc_xprt *);
2222 int (*xpo_recvfrom)(struct svc_rqst *);
23
- void (*xpo_prep_reply_hdr)(struct svc_rqst *);
2423 int (*xpo_sendto)(struct svc_rqst *);
24
+ int (*xpo_read_payload)(struct svc_rqst *, unsigned int,
25
+ unsigned int);
2526 void (*xpo_release_rqst)(struct svc_rqst *);
2627 void (*xpo_detach)(struct svc_xprt *);
2728 void (*xpo_free)(struct svc_xprt *);
....@@ -84,10 +85,10 @@
8485 struct sockaddr_storage xpt_remote; /* remote peer's address */
8586 size_t xpt_remotelen; /* length of address */
8687 char xpt_remotebuf[INET6_ADDRSTRLEN + 10];
87
- struct rpc_wait_queue xpt_bc_pending; /* backchannel wait queue */
8888 struct list_head xpt_users; /* callbacks on free */
8989
9090 struct net *xpt_net;
91
+ const struct cred *xpt_cred;
9192 struct rpc_xprt *xpt_bc_xprt; /* NFSv4.1 backchannel */
9293 struct rpc_xprt_switch *xpt_bc_xps; /* NFSv4.1 backchannel */
9394 };
....@@ -116,12 +117,19 @@
116117 return 0;
117118 }
118119
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
+
119126 int svc_reg_xprt_class(struct svc_xprt_class *);
120127 void svc_unreg_xprt_class(struct svc_xprt_class *);
121128 void svc_xprt_init(struct net *, struct svc_xprt_class *, struct svc_xprt *,
122129 struct svc_serv *);
123130 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 *);
125133 void svc_xprt_do_enqueue(struct svc_xprt *xprt);
126134 void svc_xprt_enqueue(struct svc_xprt *xprt);
127135 void svc_xprt_put(struct svc_xprt *xprt);