Received: by 2002:a05:6a10:a852:0:0:0:0 with SMTP id d18csp2806670pxy; Mon, 3 May 2021 08:26:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxZ7SZ+SoEzGob7W+ZWNnF/lkEtD5E2DkXvVTpiMeIoMPfp04a13ELvJxVr4QR8FHtcx1JR X-Received: by 2002:a17:906:9342:: with SMTP id p2mr16742341ejw.311.1620055573015; Mon, 03 May 2021 08:26:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620055573; cv=none; d=google.com; s=arc-20160816; b=Txvi38RSzIHxzxQS7yCkqII3s8hMTL4rsB46DPk42jUHr+iLamNqu2IXLYTxQCiwuj y1gLRw3Lpiycz2wRJUmCYrOMJFcHmfeHPNf6g24xsOGtDmxPWju3X9++Xt7YIAdMPM1o p3rTQgbJnWOk27sYoZ1K+3DezKLdohsgFH94YRN37xvxq6mNpD+u2IuunRPDL75KKZLE g7ApHhQpd6LsK3RiuXUc10yKUSdrSXIlN5Q648/SraiNAlLEnCfrDXJmN4rsUI7OtPFJ 5UtzCdGiMqpAWMEyc8C6Lq33+JluFkm9F68/Xpe9DuuXM+NtNHhhUjWLiGmq6I+qhql8 McqA== 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:to:from:subject; bh=B45vyxEggFdew0eXa9+OPH4PuPvlqF5LNcoWgeyRvEI=; b=wZ3nKLPV/Q2XpyoNaB3GQFSc9WegTYaE5lE6ShNe+pjialqaIJnmqrcMEMbjTMXLuq 67yHFpu8lf68sjAaxAKCMzM2eZkgd6oGMbhwAxLOBL4uptWqbaD16nrN3GUP+QprvMvT gcmB85vZF209LJw5tijjC8aCpjdzjiM6DaRzeAFLkQXGUjuuov26fg2MkfU6iAsHZ0h+ K4GIT4NKH/gDbw5apE6S4mdjtJp4OHzFukUll9Cnx1JmipcKwVZ/cLKo/AT3DeZ8esuf zWRt9wOodgbzJTI2DoVB6dldN/bq759t05X5CJwkJMmex+eYlgmVCiGP6wUYsK5i0ITB J5Zw== 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 ba28si9003721edb.402.2021.05.03.08.25.49; Mon, 03 May 2021 08:26:13 -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 S229588AbhECP0l (ORCPT + 99 others); Mon, 3 May 2021 11:26:41 -0400 Received: from mail.kernel.org ([198.145.29.99]:43314 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230333AbhECP0k (ORCPT ); Mon, 3 May 2021 11:26:40 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 099E9611CE for ; Mon, 3 May 2021 15:25:46 +0000 (UTC) Subject: [PATCH v1 29/29] lockd: Update the NLMv4 SHARE results encoder to use struct xdr_stream From: Chuck Lever To: linux-nfs@vger.kernel.org Date: Mon, 03 May 2021 11:25:46 -0400 Message-ID: <162005554616.23028.1334172778393917429.stgit@klimt.1015granger.net> In-Reply-To: <162005520101.23028.15766816408658851498.stgit@klimt.1015granger.net> References: <162005520101.23028.15766816408658851498.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 | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/fs/lockd/xdr4.c b/fs/lockd/xdr4.c index efdede71b951..98e957e4566c 100644 --- a/fs/lockd/xdr4.c +++ b/fs/lockd/xdr4.c @@ -40,15 +40,6 @@ loff_t_to_s64(loff_t offset) return res; } -static __be32 * -nlm4_encode_cookie(__be32 *p, struct nlm_cookie *c) -{ - *p++ = htonl(c->len); - memcpy(p, c->data, c->len); - p+=XDR_QUADLEN(c->len); - return p; -} - /* * NLM file handles are defined by specification to be a variable-length * XDR opaque no longer than 1024 bytes. However, this implementation @@ -356,11 +347,16 @@ nlm4svc_encode_res(struct svc_rqst *rqstp, __be32 *p) int nlm4svc_encode_shareres(struct svc_rqst *rqstp, __be32 *p) { + struct xdr_stream *xdr = &rqstp->rq_res_stream; struct nlm_res *resp = rqstp->rq_resp; - if (!(p = nlm4_encode_cookie(p, &resp->cookie))) + if (!svcxdr_encode_cookie(xdr, &resp->cookie)) return 0; - *p++ = resp->status; - *p++ = xdr_zero; /* sequence argument */ - return xdr_ressize_check(rqstp, p); + if (!svcxdr_encode_stats(xdr, resp->status)) + return 0; + /* sequence */ + if (xdr_stream_encode_u32(xdr, 0) < 0) + return 0; + + return 1; }