Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp4968273imu; Tue, 15 Jan 2019 08:57:15 -0800 (PST) X-Google-Smtp-Source: ALg8bN608TfIs9nMDSylvAFNMM2+W3hjGA9aMOmfaYEECQZBjgxzPOzcgUmxcnGrePDonKOfDOX8 X-Received: by 2002:a63:6346:: with SMTP id x67mr4606875pgb.183.1547571435712; Tue, 15 Jan 2019 08:57:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547571435; cv=none; d=google.com; s=arc-20160816; b=XhDzaJac48KIkKTbs+fLqp51Pj4XO0iKMe24DHFacANR8nXe/2iEZ6bTcdLv6X9Zuk xomE1ntCKCuNSLtcGp2cKnS3s58hercC99VFg9+8uBIXKuygfkAHpwgzo2gsrmI/h2p6 Sjva/y8I+3chGyi/FXkL3L/koImxQ9gcxy2YPBcmLljX66oSsacJlJuWvxuKPnwjaaAI DeBgy/jAcOlItCErMVOYSSxJd3F0ARmloPCTedyeWX3Pmkoh5aDClmiaxKsDhSBCqoKg x8O3GA93g9xRla7BDPvLcOC8TCDgH+Nu7CNLXl5LX9rP7+5tzL8DG7SX9bR/+H73eAfQ 2Z+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=1VYGv0zcinQWLC8/2xFKWOHQPYAxKxQoqlf+Tcy5xLg=; b=iqAZsg+Nb7XSv+6MaSfFdkH+irUfDb3a9MIs9MqQyDTXOncMZtg/GOv4XdEB/N74/b 8W2N+JOH0BWEh/mjr5obpAek7V+cMMuMiogNR8l2ohNN1zAbwTk1ZbidAYdsd15EQdck XBPYjH7O/PJec0uTIZnyl65Ahzpg/mpJShCUB6UejpiKWR/n6wl5oXKjOftfae3LqY51 uduJGdDwC0bTEgoXi7XwvqDCIL9eh6xIK67tpvhDZqFoAeaCLt2Ydrr3uc8bASJ7GFQL 2Wg3Dnc4lIO/2VVPDT4jYXjvtUCKcceH5bWjInXqVYWw8ynHbkBTxjRhmoPKrFKey/4m LQWw== ARC-Authentication-Results: i=1; mx.google.com; dkim=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=f9T54lAa; 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 t12si3806966plq.190.2019.01.15.08.56.59; Tue, 15 Jan 2019 08:57:15 -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=temperror (no key for signature) header.i=@szeredi.hu header.s=google header.b=f9T54lAa; 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 S1731015AbfAOPjv (ORCPT + 99 others); Tue, 15 Jan 2019 10:39:51 -0500 Received: from mail-io1-f65.google.com ([209.85.166.65]:34548 "EHLO mail-io1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731010AbfAOPjv (ORCPT ); Tue, 15 Jan 2019 10:39:51 -0500 Received: by mail-io1-f65.google.com with SMTP id b16so2417335ior.1 for ; Tue, 15 Jan 2019 07:39:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=1VYGv0zcinQWLC8/2xFKWOHQPYAxKxQoqlf+Tcy5xLg=; b=f9T54lAaCgMusLCN0rvX3cYPXlVIEkBPcgQVF3Bqu5jK/Yz5buPpJiCbPA4R0OgTit WV2HYsAlebKSf3Voft7a3AdwS9RjR8MzUrTktCss3ZQHRj1CCv/FaDz6x5FDzdboSQoq 5OehGzBExc9aGuux+oEDkaAEMLx/KdR79L+/U= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=1VYGv0zcinQWLC8/2xFKWOHQPYAxKxQoqlf+Tcy5xLg=; b=LpEh4RCbzZN2BdGY3gnGEq9uM5jQoWIqel/oMvXN0bEFK6vCovA/xPCEmnnr2HqLYt SL993np5gZMnBZFmAPvRrmyF64+f+JvsUt3sROtK/gi80PQgfpZOyhblnQgnzb00M/oH 3dVGnqlhrUL5LXbl+uk8twV2MIpDIO8AsSppm4+4DKq6hJTTK9uozI2KK7MuiZcKmlsv xX6boo6t45nMZC4kMkvuPEmSJdaO1ooJqhmhHoJ4WJoQBq++U5XBF/qdUZ5K38Yw3apv KNAu+zi78HGIUzNgrtAxSEkK3Dbpg42idDQKMDwYsdeppMtdPBjs0v5oARvSvUDxEgcM MVgg== X-Gm-Message-State: AJcUukfOfRACjrlXnKWRMncaQJ3mYRKlU/WuXSmltJoOA//J8t6iUSag leZn5YG2vG3RXK3CHffl/4RbQkt7paC4Jt8NN38wDg== X-Received: by 2002:a6b:fe13:: with SMTP id x19mr1444369ioh.294.1547566790742; Tue, 15 Jan 2019 07:39:50 -0800 (PST) MIME-Version: 1.0 References: <154322517208.18737.3297786654135648324.stgit@localhost.localdomain> <154322557765.18737.14337090699283695815.stgit@localhost.localdomain> In-Reply-To: <154322557765.18737.14337090699283695815.stgit@localhost.localdomain> From: Miklos Szeredi Date: Tue, 15 Jan 2019 16:39:39 +0100 Message-ID: Subject: Re: [PATCH 2/2] fuse: Replace page without copying in fuse_writepage_in_flight() To: Kirill Tkhai Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 26, 2018 at 10:46 AM Kirill Tkhai wrote: > > 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); This would mess up refcounting for all pages involved. need to swap with the temp page in new_req. Fixed version in #for-next. Thanks, Miklos