diff options
| author | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-11-02 17:09:24 -0500 |
|---|---|---|
| committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2015-11-02 17:09:24 -0500 |
| commit | ac3c860c758a864adb1dd5c7d68dadebe6c86f64 (patch) | |
| tree | 62c2bd4214874d583f6ef5eb898604e4a1b3d44c /fs/nfs | |
| parent | 260074cd8413489903d4484058e61649d6e08580 (diff) | |
| parent | 76566773a1f1c2295ed901b6f1241cfe10d99029 (diff) | |
Merge tag 'nfs-rdma-4.4-2' of git://git.linux-nfs.org/projects/anna/nfs-rdma
NFS: NFSoRDMA Client Side Changes
In addition to a variety of bugfixes, these patches are mostly geared at
enabling both swap and backchannel support to the NFS over RDMA client.
Signed-off-by: Anna Schumake <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs')
| -rw-r--r-- | fs/nfs/callback.c | 40 |
1 files changed, 8 insertions, 32 deletions
diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c index 75f7c0a7538a..a7f2e6e33305 100644 --- a/fs/nfs/callback.c +++ b/fs/nfs/callback.c | |||
| @@ -99,17 +99,6 @@ nfs4_callback_up(struct svc_serv *serv) | |||
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | #if defined(CONFIG_NFS_V4_1) | 101 | #if defined(CONFIG_NFS_V4_1) |
| 102 | static int nfs41_callback_up_net(struct svc_serv *serv, struct net *net) | ||
| 103 | { | ||
| 104 | /* | ||
| 105 | * Create an svc_sock for the back channel service that shares the | ||
| 106 | * fore channel connection. | ||
| 107 | * Returns the input port (0) and sets the svc_serv bc_xprt on success | ||
| 108 | */ | ||
| 109 | return svc_create_xprt(serv, "tcp-bc", net, PF_INET, 0, | ||
| 110 | SVC_SOCK_ANONYMOUS); | ||
| 111 | } | ||
| 112 | |||
| 113 | /* | 102 | /* |
| 114 | * The callback service for NFSv4.1 callbacks | 103 | * The callback service for NFSv4.1 callbacks |
| 115 | */ | 104 | */ |
| @@ -184,11 +173,6 @@ static inline void nfs_callback_bc_serv(u32 minorversion, struct rpc_xprt *xprt, | |||
| 184 | xprt->bc_serv = serv; | 173 | xprt->bc_serv = serv; |
| 185 | } | 174 | } |
| 186 | #else | 175 | #else |
| 187 | static int nfs41_callback_up_net(struct svc_serv *serv, struct net *net) | ||
| 188 | { | ||
| 189 | return 0; | ||
| 190 | } | ||
| 191 | |||
| 192 | static void nfs_minorversion_callback_svc_setup(struct svc_serv *serv, | 176 | static void nfs_minorversion_callback_svc_setup(struct svc_serv *serv, |
| 193 | struct svc_rqst **rqstpp, int (**callback_svc)(void *vrqstp)) | 177 | struct svc_rqst **rqstpp, int (**callback_svc)(void *vrqstp)) |
| 194 | { | 178 | { |
| @@ -259,7 +243,8 @@ static void nfs_callback_down_net(u32 minorversion, struct svc_serv *serv, struc | |||
| 259 | svc_shutdown_net(serv, net); | 243 | svc_shutdown_net(serv, net); |
| 260 | } | 244 | } |
| 261 | 245 | ||
| 262 | static int nfs_callback_up_net(int minorversion, struct svc_serv *serv, struct net *net) | 246 | static int nfs_callback_up_net(int minorversion, struct svc_serv *serv, |
| 247 | struct net *net, struct rpc_xprt *xprt) | ||
| 263 | { | 248 | { |
| 264 | struct nfs_net *nn = net_generic(net, nfs_net_id); | 249 | struct nfs_net *nn = net_generic(net, nfs_net_id); |
| 265 | int ret; | 250 | int ret; |
| @@ -275,20 +260,11 @@ static int nfs_callback_up_net(int minorversion, struct svc_serv *serv, struct n | |||
| 275 | goto err_bind; | 260 | goto err_bind; |
| 276 | } | 261 | } |
| 277 | 262 | ||
| 278 | switch (minorversion) { | 263 | ret = -EPROTONOSUPPORT; |
| 279 | case 0: | 264 | if (minorversion == 0) |
| 280 | ret = nfs4_callback_up_net(serv, net); | 265 | ret = nfs4_callback_up_net(serv, net); |
| 281 | break; | 266 | else if (xprt->ops->bc_up) |
| 282 | case 1: | 267 | ret = xprt->ops->bc_up(serv, net); |
| 283 | case 2: | ||
| 284 | ret = nfs41_callback_up_net(serv, net); | ||
| 285 | break; | ||
| 286 | default: | ||
| 287 | printk(KERN_ERR "NFS: unknown callback version: %d\n", | ||
| 288 | minorversion); | ||
| 289 | ret = -EINVAL; | ||
| 290 | break; | ||
| 291 | } | ||
| 292 | 268 | ||
| 293 | if (ret < 0) { | 269 | if (ret < 0) { |
| 294 | printk(KERN_ERR "NFS: callback service start failed\n"); | 270 | printk(KERN_ERR "NFS: callback service start failed\n"); |
| @@ -364,7 +340,7 @@ int nfs_callback_up(u32 minorversion, struct rpc_xprt *xprt) | |||
| 364 | goto err_create; | 340 | goto err_create; |
| 365 | } | 341 | } |
| 366 | 342 | ||
| 367 | ret = nfs_callback_up_net(minorversion, serv, net); | 343 | ret = nfs_callback_up_net(minorversion, serv, net, xprt); |
| 368 | if (ret < 0) | 344 | if (ret < 0) |
| 369 | goto err_net; | 345 | goto err_net; |
| 370 | 346 | ||
