Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp3470898pxu; Tue, 8 Dec 2020 12:59:36 -0800 (PST) X-Google-Smtp-Source: ABdhPJzpQ9Qg0vdsc1C3nCPX5jaE65fUFwXwEZDxO2XPlZNSfOhAz6lYScu7MDv+956eni/O/0Fq X-Received: by 2002:a17:907:7253:: with SMTP id ds19mr26131997ejc.166.1607461176477; Tue, 08 Dec 2020 12:59:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1607461176; cv=none; d=google.com; s=arc-20160816; b=lwttzR+mY/8BtSuadj8+AvTx2aUKuWj1S7cdwQkaH/hEvf/oR7pIB74PdogWKjHafS 92iMvk/4u1z+x3s4ZHnMR/VJsD5sv0JbGoqjTPGFiGPMw34T0HklZ9xv+3sjvDUOZcGd mwbJXmB/buP180Z3T3SI4Xc2Biu43CzbT0JH4THlyOQ5Zk+XBgdN09guxHnrFKDQ/qMk xkT4Ys8vab5zFGPTXjyl+0+4p7qYb3/SHQZjQCMa+S83wHb2v0uvdWi0nttTJKnvmqGX L0mG1gkoh/5lTaRW8CqsKI6E6qIUjf+r0l9m13ipdHEKMQR+Iq6cXIpqYWRCTxVAzfva 0RVQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from:sender :dkim-signature; bh=QadeMDB4dD0Jr9KGE9XjLUzhELzlem1e4EEpTMv9PU0=; b=SfKjjS6tFmeEvDbrKwz5/uqrWZ7ZUcrM2isEjCDynQPGr390vySV8smDJ35ildOHMG O70MTScKeJ8xhZrrc6tyWUHIOm3rqUARVJnofI8uQJolsrYAtunGZJWmrWgTWVfwRrtR N9G78/l9nc3VbVl2CB3cLz6Dyh+wMQ+8LGDMmmpFHnXwZe6QPyj7FjJXuPxHwpGKo1Lq +QZan/pEo+kfPdXzFkIC00811hg/GITdFfin10wrhyojHTIP4F8vWgwtchVErCLp1lgK cBuoMy0eA8q1rccUnuR19oaJBwBAzFhFyMHv5otYtfOQPsdywUDrLIO9kkuXzFTBgp6/ PTGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=E9HvWo55; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id c95si13512826edf.197.2020.12.08.12.59.14; Tue, 08 Dec 2020 12:59:36 -0800 (PST) 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; dkim=pass header.i=@gmail.com header.s=20161025 header.b=E9HvWo55; 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=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729458AbgLHUaJ (ORCPT + 99 others); Tue, 8 Dec 2020 15:30:09 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39342 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728192AbgLHUaI (ORCPT ); Tue, 8 Dec 2020 15:30:08 -0500 Received: from mail-qv1-xf42.google.com (mail-qv1-xf42.google.com [IPv6:2607:f8b0:4864:20::f42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8C42C0613D6 for ; Tue, 8 Dec 2020 12:29:28 -0800 (PST) Received: by mail-qv1-xf42.google.com with SMTP id s6so1145006qvn.6 for ; Tue, 08 Dec 2020 12:29:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=QadeMDB4dD0Jr9KGE9XjLUzhELzlem1e4EEpTMv9PU0=; b=E9HvWo55YQmLSLfoUgfVG8RxHV4R4Tnm7yyyKJBflAufaDfBehV5Ae6JlGvrBZeROF hm9UobbbbymVm0Upz/J3TvsmsSKjgtkL4RdhnKIJOJHtz+Z0sgql09cPPVHZypJkT7GY Gx6XpvpCiaiP7HcnCvOmOZkHJ9/Xhi0YhbEoen9yMQFPwnJGzPBGyIHrVnKJjUixSw9d o0PK16VA3cMUvS1yxVCXTvyO8lkgUc2CxpymOsxW4wpxzZxER1tcKoVtkwqx5UGGQIUG dyTcc4EaSRFltcDaRbU/tT5iVmoqnL0ck2K7qfRFxx1CgvYIB/WpwhDl06BQaF+32EGR 8C+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=QadeMDB4dD0Jr9KGE9XjLUzhELzlem1e4EEpTMv9PU0=; b=JefwOvvEiFNeG0e1CK/BZ8NgwxcuxpLx82DFPQ3/uZNiaXVrs7MG90caPdQAtWzwVo L7b3FtV3LH8VIwcMTal6jL4PAUBaIcACXkdPzYHW62Rr3d4ZPGKHZAx530BTr2d3SkpF MS4ptxOGzcXAF4ufylS10l3gqkdvw/V8ixRLngLSO9GBPjm1fXwyRrbh1iZT2gAk9f/0 RLv18N2obIRiZzcUa+eXgiipNdi1kQgffJE7K2vHBkxbOG9jyAE0ATkEMf/DR24b0DSR agm14sNowXCuqOQZ0jT9yGN5VRGhGCZlJvhd74elGdy1fmUlCecncrcw2Y6XPkwYXYdY HYjw== X-Gm-Message-State: AOAM532bmdJ42CQ74sZCQywvYI+D+mN5pg3JtzBqPy/XtBls8MWPvkiT W7MxVVcOfQkMANwALWCM4KyJhncQ3ok= X-Received: by 2002:a0c:8e47:: with SMTP id w7mr29327827qvb.55.1607459367698; Tue, 08 Dec 2020 12:29:27 -0800 (PST) Received: from gouda.nowheycreamery.com (c-68-32-74-190.hsd1.mi.comcast.net. [68.32.74.190]) by smtp.gmail.com with ESMTPSA id q20sm5057278qkj.49.2020.12.08.12.29.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Dec 2020 12:29:26 -0800 (PST) Sender: Anna Schumaker From: schumaker.anna@gmail.com X-Google-Original-From: Anna.Schumaker@Netapp.com To: linux-nfs@vger.kernel.org Cc: Anna.Schumaker@Netapp.com Subject: [PATCH v2 1/2] SUNRPC: Keep buf->len in sync with xdr->nwords when expanding holes Date: Tue, 8 Dec 2020 15:29:24 -0500 Message-Id: <20201208202925.597663-2-Anna.Schumaker@Netapp.com> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201208202925.597663-1-Anna.Schumaker@Netapp.com> References: <20201208202925.597663-1-Anna.Schumaker@Netapp.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org From: Anna Schumaker Otherwise we could end up placing data a few bytes off from where we actually want to put it. Fixes: 84ce182ab85b "SUNRPC: Add the ability to expand holes in data pages" Signed-off-by: Anna Schumaker --- net/sunrpc/xdr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c index 71e03b930b70..5b848fe65c81 100644 --- a/net/sunrpc/xdr.c +++ b/net/sunrpc/xdr.c @@ -1314,6 +1314,7 @@ uint64_t xdr_expand_hole(struct xdr_stream *xdr, uint64_t offset, uint64_t lengt unsigned int res = _shift_data_right_tail(buf, from + bytes - shift, shift); truncated = shift - res; xdr->nwords -= XDR_QUADLEN(truncated); + buf->len -= 4 * XDR_QUADLEN(truncated); bytes -= shift; } @@ -1325,7 +1326,7 @@ uint64_t xdr_expand_hole(struct xdr_stream *xdr, uint64_t offset, uint64_t lengt bytes); _zero_pages(buf->pages, buf->page_base + offset, length); - buf->len += length - (from - offset) - truncated; + buf->len += length - (from - offset); xdr_set_page(xdr, offset + length, PAGE_SIZE); return length; } -- 2.29.2