Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp3210627pxv; Mon, 12 Jul 2021 11:58:21 -0700 (PDT) X-Google-Smtp-Source: ABdhPJw8N/4vcVNGDl8orN4F7NZnDLysL8DH5uBAOX/0/O2e6jJOOnyyeGKxfzVAmLlMnxRdPWPn X-Received: by 2002:a6b:6209:: with SMTP id f9mr288706iog.147.1626116301635; Mon, 12 Jul 2021 11:58:21 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626116301; cv=none; d=google.com; s=arc-20160816; b=bgGOJTC4fLvoJR3ihnhaEqRXsqtPxuhkyv9CmUYKy0LCBpJCwMVZXJVOLjPhdb0+Vm sTyYogov+zHueDaCdBqO+NDmkyv0j5wokPoQ3PT+hhNxQRFhC5sB69rRebx/UZO0kmgZ vassGXH2fWYD7dAnywcwpdemM/yyYuGtadW4RgJHQIerano2e0M09SSP1WpkLsvUokhH AneZCj60d0x0wGbFGP0OtZU/sC3g6wtJeukUF70A1qJiQ73FDt1LSEz1qOYzFHpUa6Io l4w/pEo/I+b9jbtRikKoZdh3Q4fpiOn2i8Bx6s3uwmAFcwndWvLeLC/inRoyoa7NbUlW DfnQ== 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=KKZEmnBo+9X8A7F3zPP9IGPZ1TT5/jezftoeDbN3mGc=; b=sWE3AspPaWcWTPZKvuvn5loGWz0frTroSZzBSBuiQ9wA1ffnxoFedGPnZ/lSednD9F XgoRYKs3+CMmRU6N3l5XonD3DnRO5pV/N4UX0PZBydgYpBrE3g4pTxlneQrBc57j6wIv LLFGX5E97NWYZ31CiWNZ/tPrkh373Uq161GlCdC4KQ+F+XPLBgiK1w6jWSi8MFljEo0u 4aMmzgvTZbbK/w9hcgjCE98njSK2+Lez71ZICeBPgHDxJu3JOMDLpwm+pvRgKQGaha5c spnbzs6Yjsi3xc54BrVaCXEhebz2sZMgtWpSvS2JHCYnu1HQN6NUxwPsTMsKOmKM1GEZ 3R3g== 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 t3si19536748iof.33.2021.07.12.11.58.09; Mon, 12 Jul 2021 11:58:21 -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 S235009AbhGLTAm (ORCPT + 99 others); Mon, 12 Jul 2021 15:00:42 -0400 Received: from mail.kernel.org ([198.145.29.99]:54348 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234296AbhGLTAl (ORCPT ); Mon, 12 Jul 2021 15:00:41 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id 0C5E561221; Mon, 12 Jul 2021 18:57:52 +0000 (UTC) Subject: [PATCH v4 1/3] NFSD: Clean up splice actor From: Chuck Lever To: linux-nfs@vger.kernel.org, linux-mm@kvack.org Cc: neilb@suse.de Date: Mon, 12 Jul 2021 14:57:52 -0400 Message-ID: <162611627232.1416.3505133517679486921.stgit@klimt.1015granger.net> In-Reply-To: <162611520339.1416.14646909890289253420.stgit@klimt.1015granger.net> References: <162611520339.1416.14646909890289253420.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 A few useful observations: - The value in @size is never modified. - splice_desc.len is an unsigned int, and so is xdr_buf.page_len. An implicit cast to size_t is unnecessary. - The computation of .page_len is the same in all three arms of the "if" statement, so hoist it out to make it clear that the operation is an unconditional invariant. The resulting function is 18 bytes shorter on my system (-Os). Signed-off-by: Chuck Lever Reviewed-by: NeilBrown --- fs/nfsd/vfs.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index a224a5e23cc1..46a6d9fce3d2 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c @@ -847,26 +847,21 @@ nfsd_splice_actor(struct pipe_inode_info *pipe, struct pipe_buffer *buf, struct svc_rqst *rqstp = sd->u.data; struct page **pp = rqstp->rq_next_page; struct page *page = buf->page; - size_t size; - - size = sd->len; if (rqstp->rq_res.page_len == 0) { get_page(page); put_page(*rqstp->rq_next_page); *(rqstp->rq_next_page++) = page; rqstp->rq_res.page_base = buf->offset; - rqstp->rq_res.page_len = size; } else if (page != pp[-1]) { get_page(page); if (*rqstp->rq_next_page) put_page(*rqstp->rq_next_page); *(rqstp->rq_next_page++) = page; - rqstp->rq_res.page_len += size; - } else - rqstp->rq_res.page_len += size; + } + rqstp->rq_res.page_len += sd->len; - return size; + return sd->len; } static int nfsd_direct_splice_actor(struct pipe_inode_info *pipe,