Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp3544829imu; Mon, 7 Jan 2019 05:24:13 -0800 (PST) X-Google-Smtp-Source: ALg8bN5EWiffAefShjj6uf51YtBGTwqm2HY6G6EBhemsq2kICaGunUP1rq1pIQDsvZ9iVSwePIjt X-Received: by 2002:a17:902:aa4c:: with SMTP id c12mr61132953plr.48.1546867453736; Mon, 07 Jan 2019 05:24:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1546867453; cv=none; d=google.com; s=arc-20160816; b=Rj0mXte9OHEAwfBOQUPVQaBOQLkhRR/XH9N7b3/iZ7tnnmVGCmFlT8lBztMBRJL3NL GP3/0ZTGKhtYG/pksswPsfzi+F5jY9g9ikXVyQvZhtRWTbYDgBirKpb5YDq2FrYy4eZr IGXCL6FoLh3dkW6CuL2LaCrTWPVfjoBkGyrqGIeQkQWu1D6nrLW5C78f7AZK7BiPJCvH XelDBRBIMOCl6bJoCA2KmwZT+dPmojn07NCPTDuXOwzCN7zZwyQZhQYK+yttbS/mB6Op 86aomXkud9MuAIk7/TvHsowJ7wk9gathx4rGkyFtJs4hS+SBavINOHmfGpZrXO9Ggx4t 2u6g== 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=NjVl85CbGZ6Ix5hgph+crRHkXmQt7m2wpaU1H/FZOSE=; b=yaK+eVKgFedXafqMWKEJ9I0BEvyGFNL7U2n2sYhy5oOjSeEIqVtnfEtwOjy1iyG4cu Aemprd95hUaTPEuVxBNeahumRX1mY7TSWFNjq0OetwoeDyKABIqPiEoBX/rZFZmQQj/Y nwey2RKwXdOqg7N69NFIEua9izQTumywQ4zIxND0+w9k4thTvWbJDjOw28Y6BZtEiSlL oE4Eke3/irJQkiOVxWsbN/qGTTZZGhPeI4gt/bKJxD5JXGTiqc2undJjKUS7IwowLJNt 0dpjJ6J8ldBXcQUaN0lpm8NVGjobw8DCGIrHp018bxprTrPcp1s/uF3D4AID4KhGzcaQ nUcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=Y4R3byLn; 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 j10si11344230plg.123.2019.01.07.05.23.58; Mon, 07 Jan 2019 05:24:13 -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=Y4R3byLn; 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 S1728724AbfAGMoV (ORCPT + 99 others); Mon, 7 Jan 2019 07:44:21 -0500 Received: from mail.kernel.org ([198.145.29.99]:60886 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727117AbfAGMoO (ORCPT ); Mon, 7 Jan 2019 07:44:14 -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 8178020449; Mon, 7 Jan 2019 12:44:13 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1546865054; bh=aXcTOBp8bNgdxJsVsJ1yU7POIrdQzO84nrQ0ZDLsP0U=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=Y4R3byLngk9KAVBUU+JB/KKhvO3U1TqyCSSZ7JKyhb2/H8Wm3mkmEEy5y2KS3p+BW P/dNbR6y17QYPjnQwSD3buVPhsGM5tLEy8VTs1VkO3yUJthmPJlB4diKD4wvjDDEzJ USLCVFaZzB+rVffEjZCg0vV/IOOV12MYAV0PSVxA= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Long Li , Steve French , Joey Pabalinas Subject: [PATCH 4.20 130/145] CIFS: use the correct length when pinning memory for direct I/O for write Date: Mon, 7 Jan 2019 13:32:47 +0100 Message-Id: <20190107104454.179028436@linuxfoundation.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190107104437.308206189@linuxfoundation.org> References: <20190107104437.308206189@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.20-stable review patch. If anyone has any objections, please let me know. ------------------ From: Long Li commit b6bc8a7b993e62f82415a5e3e4a6469e80fea19c upstream. The current code attempts to pin memory using the largest possible wsize based on the currect SMB credits. This doesn't cause kernel oops but this is not optimal as we may pin more pages then actually needed. Fix this by only pinning what are needed for doing this write I/O. Signed-off-by: Long Li Cc: stable@vger.kernel.org Signed-off-by: Steve French Reviewed-by: Joey Pabalinas Signed-off-by: Greg Kroah-Hartman --- fs/cifs/file.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -2617,11 +2617,13 @@ cifs_write_from_iter(loff_t offset, size if (rc) break; + cur_len = min_t(const size_t, len, wsize); + if (ctx->direct_io) { ssize_t result; result = iov_iter_get_pages_alloc( - from, &pagevec, wsize, &start); + from, &pagevec, cur_len, &start); if (result < 0) { cifs_dbg(VFS, "direct_writev couldn't get user pages "