]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
SUNRPC: Make AUTH_SYS and AUTH_NULL set au_verfsize
authorChuck Lever <chuck.lever@oracle.com>
Mon, 11 Feb 2019 16:25:31 +0000 (11:25 -0500)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 14 Feb 2019 16:17:47 +0000 (11:17 -0500)
au_verfsize will be needed for a non-flavor-specific computation
in a subsequent patch.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
include/linux/sunrpc/auth.h
net/sunrpc/auth_gss/auth_gss.c
net/sunrpc/auth_null.c
net/sunrpc/auth_unix.c

index c51e1893f77ef2498291ec033ac21d2e7e03fa39..359dfdd04e7788a6926d7e278db94dd166e3da09 100644 (file)
@@ -77,8 +77,7 @@ struct rpc_auth {
                                /* guess at number of u32's auth adds before
                                 * reply data; normally the verifier size: */
        unsigned int            au_rslack;
-                               /* for gss, used to calculate au_rslack: */
-       unsigned int            au_verfsize;
+       unsigned int            au_verfsize;    /* size of reply verifier */
 
        unsigned int            au_flags;       /* various flags */
        const struct rpc_authops *au_ops;               /* operations */
index fda454c9b594b14a06488694907f66b659347acc..731e7a482e181962c6e474314aeb56d7ae210f35 100644 (file)
@@ -1016,6 +1016,7 @@ gss_create_new(const struct rpc_auth_create_args *args, struct rpc_clnt *clnt)
        auth = &gss_auth->rpc_auth;
        auth->au_cslack = GSS_CRED_SLACK >> 2;
        auth->au_rslack = GSS_VERF_SLACK >> 2;
+       auth->au_verfsize = GSS_VERF_SLACK >> 2;
        auth->au_flags = 0;
        auth->au_ops = &authgss_ops;
        auth->au_flavor = flavor;
index bf96975ffc4b6ca8280d4fb02ce2a25d882a3aee..9ae08248a9e11b00bab4f0c35089a406621f61d0 100644 (file)
@@ -114,6 +114,7 @@ static
 struct rpc_auth null_auth = {
        .au_cslack      = NUL_CALLSLACK,
        .au_rslack      = NUL_REPLYSLACK,
+       .au_verfsize    = NUL_REPLYSLACK,
        .au_ops         = &authnull_ops,
        .au_flavor      = RPC_AUTH_NULL,
        .au_count       = REFCOUNT_INIT(1),
index 5ea84a96f96e02eb0f554782733265c30f4d004a..a93c564424878618eba77dd6213ea5bc3f8bb54c 100644 (file)
@@ -163,6 +163,7 @@ unx_refresh(struct rpc_task *task)
 static int
 unx_validate(struct rpc_task *task, struct xdr_stream *xdr)
 {
+       struct rpc_auth *auth = task->tk_rqstp->rq_cred->cr_auth;
        __be32 *p;
        u32 size;
 
@@ -184,7 +185,8 @@ unx_validate(struct rpc_task *task, struct xdr_stream *xdr)
        if (!p)
                return -EIO;
 
-       task->tk_rqstp->rq_cred->cr_auth->au_rslack = (size >> 2) + 2;
+       auth->au_verfsize = XDR_QUADLEN(size) + 2;
+       auth->au_rslack = XDR_QUADLEN(size) + 2;
        return 0;
 }
 
@@ -212,6 +214,7 @@ static
 struct rpc_auth                unix_auth = {
        .au_cslack      = UNX_CALLSLACK,
        .au_rslack      = NUL_REPLYSLACK,
+       .au_verfsize    = NUL_REPLYSLACK,
        .au_ops         = &authunix_ops,
        .au_flavor      = RPC_AUTH_UNIX,
        .au_count       = REFCOUNT_INIT(1),