Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp574342pxj; Thu, 3 Jun 2021 13:54:41 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxsb7ykBcgP9RGA7dB3LCUMpLeiYIGT9hg08DXUpoSWkVcPWQvAZzYs9pIyjah2+x+JhvlS X-Received: by 2002:a50:ee18:: with SMTP id g24mr1266529eds.11.1622753680948; Thu, 03 Jun 2021 13:54:40 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1622753680; cv=none; d=google.com; s=arc-20160816; b=U+opJ/LolIRXeLVDZjqvNdh/vhR+zsJD3V+AxeVVXCcPQQlgXb2/IKOij5P7VqGXSu mleb1DTSdPLQ1cy80A7unA5TrPGlp2Mr0JNczOSCHGjl9wlVufpc5jFRsxGWtcNIJ9dw 5U1+5cFYrwN4sEAj5p2pchPqc/evTJ7D9BGebdxUoeSbjjs5zhJdb0AjjSQfmHgFDgJe +adHvnL2OYROn9UBkdqOr4iutKjv8kiUAsrlX9ztxwsMFS9+fOiY5pUOK4G5jcBzVIvf nc7/W9YjShJYj21T3FkToFKhn/jR35qnO2FO30R22WC02FsexVjDFdLPQcoq/oPsgm63 icXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:cc:to:from :subject; bh=hJWh2MtB5jTUxdO3lM4e4Hc7Ko7DvvJ1W+pc447VY1c=; b=IHG/k0xkigKBaeqsvtXPcIm9++Kd6WOaLilbno6xW76HnAxzOXPiWQkr6/qtBi1hA8 wGT9yO1ip7IZgeY09muB45cCoSsty9H3aewtv9kZ/jhLd7sgO1/d4rrpCPmDEktKfv1a 9tl3LH0aRM0sBb6eYt5Mz16PVtX5Nt+F5b+UCtO96K0YIYHeyLLmo4Al0st0l2B/Gg99 lEdqQlrhzTd4wzrCykyRifZ4DPxXQv+lNURLwUfkFaGuyx8iJak08Gvt8/PKg7MxYYZp Fk5tAl1N7obXiklUOG6xFrsgt8NwexOHAjxKm+zIW8coieviEJm+u4I8tKHkSjJJqgWn tKGg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id e27si3237807ejl.653.2021.06.03.13.54.17; Thu, 03 Jun 2021 13:54:40 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-nfs-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-nfs-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=oracle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230081AbhFCUyv (ORCPT + 99 others); Thu, 3 Jun 2021 16:54:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:45220 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229852AbhFCUyu (ORCPT ); Thu, 3 Jun 2021 16:54:50 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A9170613F1; Thu, 3 Jun 2021 20:53:05 +0000 (UTC) Subject: [PATCH 25/29] lockd: Update the NLMv4 FREE_ALL arguments decoder to use struct xdr_stream From: Chuck Lever To: bfields@fieldses.org Cc: linux-nfs@vger.kernel.org Date: Thu, 03 Jun 2021 16:53:04 -0400 Message-ID: <162275358498.32691.16098108993604000915.stgit@klimt.1015granger.net> In-Reply-To: <162275337584.32691.3943139351165347555.stgit@klimt.1015granger.net> References: <162275337584.32691.3943139351165347555.stgit@klimt.1015granger.net> User-Agent: StGit/1.1 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org Signed-off-by: Chuck Lever --- fs/lockd/xdr4.c | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/fs/lockd/xdr4.c b/fs/lockd/xdr4.c index e6bab1d1e41f..6c5383bef2bf 100644 --- a/fs/lockd/xdr4.c +++ b/fs/lockd/xdr4.c @@ -309,6 +309,21 @@ nlm4svc_decode_shareargs(struct svc_rqst *rqstp, __be32 *p) return 1; } +int +nlm4svc_decode_notify(struct svc_rqst *rqstp, __be32 *p) +{ + struct xdr_stream *xdr = &rqstp->rq_arg_stream; + struct nlm_args *argp = rqstp->rq_argp; + struct nlm_lock *lock = &argp->lock; + + if (!svcxdr_decode_string(xdr, &lock->caller, &lock->len)) + return 0; + if (xdr_stream_decode_u32(xdr, &argp->state) < 0) + return 0; + + return 1; +} + int nlm4svc_encode_testres(struct svc_rqst *rqstp, __be32 *p) { @@ -342,19 +357,6 @@ nlm4svc_encode_res(struct svc_rqst *rqstp, __be32 *p) return xdr_ressize_check(rqstp, p); } -int -nlm4svc_decode_notify(struct svc_rqst *rqstp, __be32 *p) -{ - struct nlm_args *argp = rqstp->rq_argp; - struct nlm_lock *lock = &argp->lock; - - if (!(p = xdr_decode_string_inplace(p, &lock->caller, - &lock->len, NLM_MAXSTRLEN))) - return 0; - argp->state = ntohl(*p++); - return xdr_argsize_check(rqstp, p); -} - int nlm4svc_encode_void(struct svc_rqst *rqstp, __be32 *p) {