Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp108112imu; Tue, 15 Jan 2019 17:40:51 -0800 (PST) X-Google-Smtp-Source: ALg8bN75T6HQZK4q462LVDI0mUvqYMdnRFk7tr21k/omFP8ub6PPwKHjlGYxtxVfxkeesdqOpXOl X-Received: by 2002:a17:902:a411:: with SMTP id p17mr7079433plq.292.1547602851230; Tue, 15 Jan 2019 17:40:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547602851; cv=none; d=google.com; s=arc-20160816; b=QvGDC596STsHh+4TEyO9YZdt8G7uR2lfCa4ONzn2GBtMtfsSOD4Wmcw3h0ld7i+dmr syifFI7wfl603rMvPiD2iWAYyQDlPIzJ7olvnAGbVFK+YL2P6RQhfjdvacKxkUAOeaiK f2qyj9tP1ZSrSA19E/tkyj6ZoXGMjzLagtU3NKhvPHuYFy5uHTfAHVWDBSSGzy55M2zf +rnAue/eJ9jAW8r2uavv45dT35B5u3aCYmwO6XeqCB2V6Ehct3t4q8EdKYzQZYcqCLtc rm+6AR0YMnNGzLxYgQR7nvvO1LNz1nFkirmTjZBZ1q9J/gOiBVz9bc8kqVWQ+i//L2f2 KzFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=BrsrVjk93q5G2zMeLPYRlqWVdkLczBXHVLAy3Di46gw=; b=vBNu3JR1HSOEuFywRpsL7LAz6bGzMFPW/ppGbxNA8Fm/WlEe+NHPfvqG1PUOKvqb07 1mm2D1Qb4fV+JKXNWlh1F8Yc34gMIDmXVufq+G3FKYhN4N9Cy4XlysovWveCJtKvVO+G ACypoZSYmcOdGjX2DDoDbEwYx1TGv6UwyV1eTXHdL+THEfb19JCBCc0KFYxHnin3x29r Lg+pXzctY8sXsEUZLmxAiyt2BF7DB7VtYCm6HtzTMKMWesUyFNhS0fwzMZVR1Pl5Uwb/ gNl/dEHJ1tp24sCxobW7pDlipdJ3MrpU2NJIAePEdPsa52k0uAZwzRtzKZZPsyn8Ki4Y ArEg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zfFE6F4m; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g5si4586678plt.273.2019.01.15.17.40.30; Tue, 15 Jan 2019 17:40:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=zfFE6F4m; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731015AbfAOQ5e (ORCPT + 99 others); Tue, 15 Jan 2019 11:57:34 -0500 Received: from mail.kernel.org ([198.145.29.99]:57138 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732638AbfAOQkl (ORCPT ); Tue, 15 Jan 2019 11:40:41 -0500 Received: from localhost (5356596B.cm-6-7b.dynamic.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id F2E1F2054F; Tue, 15 Jan 2019 16:40:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1547570440; bh=43VCFRXHHm+L+Vl61PryGPx20eIDXuj3EZK1hR1AY3Q=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=zfFE6F4mCjaNcP2hg4Y5BB9GbPDJLuaQy6HmmiLDxKbQeNJBa7j+WkTTfXoxACbjW aOLEm1KRI8xe6OPxlAccoVe9IhnyGyejfx6zYTFBI629IGwPBN/UHrRgk1jGRsxjrl CCo+bQpWku6Ic2TbLKnhrSvVCX3Uj0YhdhY5pa+4= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Pavel Shilovsky , Steve French Subject: [PATCH 4.14 06/27] CIFS: Fix adjustment of credits for MTU requests Date: Tue, 15 Jan 2019 17:35:55 +0100 Message-Id: <20190115154901.576945065@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190115154901.189747728@linuxfoundation.org> References: <20190115154901.189747728@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.14-stable review patch. If anyone has any objections, please let me know. ------------------ From: Pavel Shilovsky commit b983f7e92348d7e7d091db1b78b7915e9dd3d63a upstream. Currently for MTU requests we allocate maximum possible credits in advance and then adjust them according to the request size. While we were adjusting the number of credits belonging to the server, we were skipping adjustment of credits belonging to the request. This patch fixes it by setting request credits to CreditCharge field value of SMB2 packet header. Also ask 1 credit more for async read and write operations to increase parallelism and match the behavior of other operations. Signed-off-by: Pavel Shilovsky Signed-off-by: Steve French CC: Stable Signed-off-by: Greg Kroah-Hartman --- fs/cifs/smb2pdu.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) --- a/fs/cifs/smb2pdu.c +++ b/fs/cifs/smb2pdu.c @@ -2632,12 +2632,14 @@ smb2_async_readv(struct cifs_readdata *r if (rdata->credits) { shdr->CreditCharge = cpu_to_le16(DIV_ROUND_UP(rdata->bytes, SMB2_MAX_BUFFER_SIZE)); - shdr->CreditRequest = shdr->CreditCharge; + shdr->CreditRequest = + cpu_to_le16(le16_to_cpu(shdr->CreditCharge) + 1); spin_lock(&server->req_lock); server->credits += rdata->credits - le16_to_cpu(shdr->CreditCharge); spin_unlock(&server->req_lock); wake_up(&server->request_q); + rdata->credits = le16_to_cpu(shdr->CreditCharge); flags |= CIFS_HAS_CREDITS; } @@ -2842,12 +2844,14 @@ smb2_async_writev(struct cifs_writedata if (wdata->credits) { shdr->CreditCharge = cpu_to_le16(DIV_ROUND_UP(wdata->bytes, SMB2_MAX_BUFFER_SIZE)); - shdr->CreditRequest = shdr->CreditCharge; + shdr->CreditRequest = + cpu_to_le16(le16_to_cpu(shdr->CreditCharge) + 1); spin_lock(&server->req_lock); server->credits += wdata->credits - le16_to_cpu(shdr->CreditCharge); spin_unlock(&server->req_lock); wake_up(&server->request_q); + wdata->credits = le16_to_cpu(shdr->CreditCharge); flags |= CIFS_HAS_CREDITS; }