Commit 07bccc2d authored by Alexandros Batsakis's avatar Alexandros Batsakis Committed by Trond Myklebust

nfs41: add support for callback with RPC version number 4

The NFSv4.1 spec-29 (18.36.3) says that the server MUST use an ONC RPC
(program) version number equal to 4 in callbacks sent to the client.
For now we allow both versions 1 and 4.
Signed-off-by: default avatarAlexandros Batsakis <batsakis@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 0b9e2d41
...@@ -385,6 +385,7 @@ static int nfs_callback_authenticate(struct svc_rqst *rqstp) ...@@ -385,6 +385,7 @@ static int nfs_callback_authenticate(struct svc_rqst *rqstp)
*/ */
static struct svc_version *nfs4_callback_version[] = { static struct svc_version *nfs4_callback_version[] = {
[1] = &nfs4_callback_version1, [1] = &nfs4_callback_version1,
[4] = &nfs4_callback_version4,
}; };
static struct svc_stat nfs4_callback_stats; static struct svc_stat nfs4_callback_stats;
......
...@@ -718,3 +718,10 @@ struct svc_version nfs4_callback_version1 = { ...@@ -718,3 +718,10 @@ struct svc_version nfs4_callback_version1 = {
.vs_dispatch = NULL, .vs_dispatch = NULL,
}; };
struct svc_version nfs4_callback_version4 = {
.vs_vers = 4,
.vs_nproc = ARRAY_SIZE(nfs4_callback_procedures1),
.vs_proc = nfs4_callback_procedures1,
.vs_xdrsize = NFS4_CALLBACK_XDRSIZE,
.vs_dispatch = NULL,
};
...@@ -156,6 +156,7 @@ struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentr ...@@ -156,6 +156,7 @@ struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentr
/* callback_xdr.c */ /* callback_xdr.c */
extern struct svc_version nfs4_callback_version1; extern struct svc_version nfs4_callback_version1;
extern struct svc_version nfs4_callback_version4;
/* pagelist.c */ /* pagelist.c */
extern int __init nfs_init_nfspagecache(void); extern int __init nfs_init_nfspagecache(void);
......
...@@ -290,6 +290,7 @@ struct nfs4_mount_data; ...@@ -290,6 +290,7 @@ struct nfs4_mount_data;
/* callback_xdr.c */ /* callback_xdr.c */
extern struct svc_version nfs4_callback_version1; extern struct svc_version nfs4_callback_version1;
extern struct svc_version nfs4_callback_version4;
#else #else
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment