Commit 1e9e177d authored by Chuck Lever's avatar Chuck Lever
Browse files

SUNRPC: Move svcxdr_init_decode() into ->accept methods



Refactor: So that the overhaul of each ->accept method can be done
in separate smaller patches, temporarily move the
svcxdr_init_decode() call into those methods.

Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent dba5eaa4
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1280,6 +1280,7 @@ static int svcauth_gss_legacy_init(struct svc_rqst *rqstp,
			   rsip->major_status, rsip->minor_status))
		goto out;

	svcxdr_init_decode(rqstp);
	ret = SVC_COMPLETE;
out:
	cache_put(&rsip->h, sn->rsi_cache);
@@ -1408,6 +1409,7 @@ static int svcauth_gss_proxy_init(struct svc_rqst *rqstp,
			   ud.major_status, ud.minor_status))
		goto out;

	svcxdr_init_decode(rqstp);
	ret = SVC_COMPLETE;
out:
	gss_free_in_token_pages(&ud.in_token);
@@ -1644,6 +1646,7 @@ svcauth_gss_accept(struct svc_rqst *rqstp)
		rqstp->rq_auth_stat = rpc_autherr_badcred;
		switch (gc->gc_svc) {
		case RPC_GSS_SVC_NONE:
			svcxdr_init_decode(rqstp);
			break;
		case RPC_GSS_SVC_INTEGRITY:
			/* placeholders for length and seq. number: */
@@ -1653,6 +1656,7 @@ svcauth_gss_accept(struct svc_rqst *rqstp)
					gc->gc_seq, rsci->mechctx))
				goto garbage_args;
			rqstp->rq_auth_slack = RPC_MAX_AUTH_SIZE;
			svcxdr_init_decode(rqstp);
			break;
		case RPC_GSS_SVC_PRIVACY:
			/* placeholders for length and seq. number: */
@@ -1662,6 +1666,7 @@ svcauth_gss_accept(struct svc_rqst *rqstp)
					gc->gc_seq, rsci->mechctx))
				goto garbage_args;
			rqstp->rq_auth_slack = RPC_MAX_AUTH_SIZE * 2;
			svcxdr_init_decode(rqstp);
			break;
		default:
			goto auth_err;
+0 −1
Original line number Diff line number Diff line
@@ -1302,7 +1302,6 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
	if (progp == NULL)
		goto err_bad_prog;

	svcxdr_init_decode(rqstp);
	rpc_stat = progp->pg_init_request(rqstp, progp, &process);
	switch (rpc_stat) {
	case rpc_success:
+3 −0
Original line number Diff line number Diff line
@@ -762,6 +762,7 @@ svcauth_null_accept(struct svc_rqst *rqstp)
	svc_putnl(resv, 0);

	rqstp->rq_cred.cr_flavor = RPC_AUTH_NULL;
	svcxdr_init_decode(rqstp);
	return SVC_OK;
}

@@ -835,6 +836,7 @@ svcauth_tls_accept(struct svc_rqst *rqstp)
		svc_putnl(resv, 0);

	rqstp->rq_cred.cr_flavor = RPC_AUTH_TLS;
	svcxdr_init_decode(rqstp);
	return SVC_OK;
}

@@ -900,6 +902,7 @@ svcauth_unix_accept(struct svc_rqst *rqstp)
	svc_putnl(resv, 0);

	rqstp->rq_cred.cr_flavor = RPC_AUTH_UNIX;
	svcxdr_init_decode(rqstp);
	return SVC_OK;

badcred: