Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp5540143imu; Mon, 26 Nov 2018 01:48:06 -0800 (PST) X-Google-Smtp-Source: AFSGD/VbVPk9VNynlGgDFnV7WGVEJ7jBze6fVdCYmdxlAkX7WQ3M6mZu+HfbffgJRIoY8b2BzNRm X-Received: by 2002:a63:4246:: with SMTP id p67mr23888536pga.335.1543225686543; Mon, 26 Nov 2018 01:48:06 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1543225686; cv=none; d=google.com; s=arc-20160816; b=eW/YGvDgxIO9r0Yzu++DO3uD4UgL0Ao0+7ibkIyr0/n+wzM4tBdmdDFjqpQrU4MqIl GIHqFkLWtw4ihY0qqv/3O3dJ1Az4Y3xox/TGtBdziv+aql9o6ya4pjwhqDV9B9nbEKyr aetvgZb5/t1gbcJ9csMWWMC2EOLZ6Zxj/AFrdhDmdveGjYus7AwHL2JupOdY23eUr9I5 qUyecivnA7NvxnV3uAcW06OzIajCoNghbdfdvqIgFdXSnXuxbET+fK33K1UTBmsTWOI5 rQ2IwCcpceP0IiePG3eqOJeKyk9lbZtIHtU/FEDIvVhuDOC7ppShfuYxWo1ElZNuwDvZ DZ6Q== 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:to:from:subject; bh=4SfZAPf4SDJNJihWIzNzMND9IqkkOAtqbJTv2mZFox0=; b=J9FMHJZzj0c9zajGPrZCa8qPrDBxi4Hp+IFBuPYCcfGNyMzGmCx9/lHSorhdOWjsy0 K8RRf4MlwyIg5P2d9o9aZnlD/3aIZk5A8ROGj32Co566HvoS9u783RYm7mRJd8+Po0ty ECYE3mH+oVvG2nxgQfJg3gDOItrL7arVImKgIooMJCQdOLPLB05SZFP369NFRjXz+ujR IpdbcPfwTAhJf79vi46EFmZCI44ZpuM8Y06cr6Aed0DOZIur04EIuaaPbbf+3YjuqbiZ JLClxARePbLW3ZMYp+q2zpvPf15oARd61EylV1AA63lEQnwZTUiXUIfl8TEn4P5J2KrO C9Gw== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3-v6si61804666plz.12.2018.11.26.01.47.51; Mon, 26 Nov 2018 01:48:06 -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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726421AbeKZUj5 (ORCPT + 99 others); Mon, 26 Nov 2018 15:39:57 -0500 Received: from relay.sw.ru ([185.231.240.75]:49798 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726203AbeKZUj4 (ORCPT ); Mon, 26 Nov 2018 15:39:56 -0500 Received: from [172.16.25.169] (helo=localhost.localdomain) by relay.sw.ru with esmtp (Exim 4.91) (envelope-from ) id 1gRDTA-0007C0-Rn; Mon, 26 Nov 2018 12:46:21 +0300 Subject: [PATCH 2/2] fuse: Replace page without copying in fuse_writepage_in_flight() From: Kirill Tkhai To: miklos@szeredi.hu, ktkhai@virtuozzo.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Mon, 26 Nov 2018 12:46:20 +0300 Message-ID: <154322557765.18737.14337090699283695815.stgit@localhost.localdomain> In-Reply-To: <154322517208.18737.3297786654135648324.stgit@localhost.localdomain> References: <154322517208.18737.3297786654135648324.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org It looks like we can optimize old_req page replacement and avoid copying by simple updating the request's page. Signed-off-by: Kirill Tkhai --- fs/fuse/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/fuse/file.c b/fs/fuse/file.c index c6650c68b31a..83b54b082c86 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1778,7 +1778,7 @@ static bool fuse_writepage_in_flight(struct fuse_req *new_req, if (old_req->num_pages == 1 && old_req != first_req) { struct backing_dev_info *bdi = inode_to_bdi(page->mapping->host); - copy_highpage(old_req->pages[0], page); + swap(old_req->pages[0], page); spin_unlock(&fc->lock); dec_wb_stat(&bdi->wb, WB_WRITEBACK);