Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp121707ybl; Thu, 30 Jan 2020 18:20:42 -0800 (PST) X-Google-Smtp-Source: APXvYqzY8tj2hN7HyOw6ZWVps+qU0KbqFOzx+Xy4ihSFlaZWjw7+YakJ2FOFxWSpAEXQn8D2RRqj X-Received: by 2002:a05:6830:145:: with SMTP id j5mr5683989otp.242.1580437242016; Thu, 30 Jan 2020 18:20:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1580437242; cv=none; d=google.com; s=arc-20160816; b=dl5vY6PLMc75KHZuoRuOCWV+cqJDRipuPdAtrsRvNIA3kTpmfvU2tpIi1/EJ9SZ8vF I7XF8ulkLVHRa4ckUBccT3UlejOGyRoA1d4HBDhmYYpoh3d5JaSDWwtCvkezEcjb3Kt7 WHPh5iSKnr1yYsxo7WP4fXlQDjpx2GPoBS4G3VAco+nOjBWoGCT4WrTWXfRjQSxuZ1+D vKzgg1Qw1AVdGXWAKERlVjsh6Tj8JneO0ZN2tBkmR5wDwF8V9gC2myi8sjkuB9ppU/sj A0OdqkxbXPpDfljDjuKsMe2B0Hzx2cnv3TY2L+L4KBRQomwWwjIjV5QAoUJfxDINdYEH eOyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=yhp2p9dWn8y019J3guJxrYbI198KK8k9mE+5J6YLRv8=; b=M1Rv29W/8I6fcqfexOLTevOP9d+UfDZTwQ9TWduExjawVpnYOCssvmQMdbYB/JmJ3U TZyFol1+nyi+E6CthXi3YUXGeJRFWJayUMhL5F/X6ul/2ONW9274IlKgWIukGVMBsZNI pmXE87osKwynvEDoCqzgq0d04TuW0QAvAWTxeFjuJG/PK46go8zRPIBmhM2EShCsYlzz BfP5BNTrG7ZVhIyTxdZSVyVJDwaqhknLByUv9OAeZjCngHn8VWPagiMpy+An+rzzNl8X TijrPf2Jilj8zFTG1fq1vPjEkgh4Q98OqJj4or9rKiOx/VU9e6ZlmDqLF/PnjF6hsr0n EXLA== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e1si3736288otr.8.2020.01.30.18.20.28; Thu, 30 Jan 2020 18:20:42 -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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727895AbgAaCTN (ORCPT + 99 others); Thu, 30 Jan 2020 21:19:13 -0500 Received: from mail104.syd.optusnet.com.au ([211.29.132.246]:52634 "EHLO mail104.syd.optusnet.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727749AbgAaCTM (ORCPT ); Thu, 30 Jan 2020 21:19:12 -0500 Received: from dread.disaster.area (pa49-195-111-217.pa.nsw.optusnet.com.au [49.195.111.217]) by mail104.syd.optusnet.com.au (Postfix) with ESMTPS id 78756820118; Fri, 31 Jan 2020 13:19:10 +1100 (AEDT) Received: from dave by dread.disaster.area with local (Exim 4.92.3) (envelope-from ) id 1ixLtl-0006PJ-WF; Fri, 31 Jan 2020 13:19:10 +1100 Date: Fri, 31 Jan 2020 13:19:09 +1100 From: Dave Chinner To: Matthew Wilcox Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 11/12] fuse: Convert from readpages to readahead Message-ID: <20200131021909.GC18575@dread.disaster.area> References: <20200125013553.24899-1-willy@infradead.org> <20200125013553.24899-12-willy@infradead.org> <20200129010829.GK18610@dread.disaster.area> <20200130213533.GN6615@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200130213533.GN6615@bombadil.infradead.org> User-Agent: Mutt/1.10.1 (2018-07-13) X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.3 cv=W5xGqiek c=1 sm=1 tr=0 a=0OveGI8p3fsTA6FL6ss4ZQ==:117 a=0OveGI8p3fsTA6FL6ss4ZQ==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=kj9zAlcOel0A:10 a=Jdjhy38mL1oA:10 a=7-415B0cAAAA:8 a=6Pvhz1k-dUzALmsgqCgA:9 a=CjuIK1q_8ugA:10 a=biEYGPWJfzWAr4FL6Ov7:22 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Jan 30, 2020 at 01:35:33PM -0800, Matthew Wilcox wrote: > On Wed, Jan 29, 2020 at 12:08:29PM +1100, Dave Chinner wrote: > > On Fri, Jan 24, 2020 at 05:35:52PM -0800, Matthew Wilcox wrote: > > > + while (nr_pages--) { > > > + struct page *page = readahead_page(mapping, start++); > > > + int err = fuse_readpages_fill(&data, page); > > > + > > > + if (!err) > > > + continue; > > > + nr_pages++; > > > + goto out; > > > } > > > > That's some pretty convoluted logic. Perhaps: > > > > for (; nr_pages > 0 ; nr_pages--) { > > struct page *page = readahead_page(mapping, start++); > > > > if (fuse_readpages_fill(&data, page)) > > goto out; > > } > > I have a bit of an aversion to that style of for loop ... I like this > instead: > > while (nr_pages) { > struct page *page = readahead_page(mapping, start++); > > if (fuse_readpages_fill(&data, page) != 0) > goto out; > nr_pages--; > } yup, that's also fine. -Dave. -- Dave Chinner david@fromorbit.com