Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754184AbbHXVJf (ORCPT ); Mon, 24 Aug 2015 17:09:35 -0400 Received: from mx2.suse.de ([195.135.220.15]:50614 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751418AbbHXVJd (ORCPT ); Mon, 24 Aug 2015 17:09:33 -0400 Date: Mon, 24 Aug 2015 23:09:27 +0200 From: Jan Kara To: Tejun Heo Cc: Jan Kara , Dave Chinner , Eryu Guan , Jens Axboe , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, axboe@fb.com, Jan Kara , linux-fsdevel@vger.kernel.org, kernel-team@fb.com Subject: Re: [PATCH block/for-linus] writeback: fix syncing of I_DIRTY_TIME inodes Message-ID: <20150824210927.GA8823@quack.suse.cz> References: <20150822003025.GS3902@dastard> <20150822044609.GM17933@dhcp-13-216.nay.redhat.com> <20150824011123.GA714@dastard> <20150824031816.GO17933@dhcp-13-216.nay.redhat.com> <20150824062425.GU3902@dastard> <20150824091959.GA2936@quack.suse.cz> <20150824145150.GA10029@mtj.duckdns.org> <20150824171144.GB27262@mtj.duckdns.org> <20150824190847.GA4234@quack.suse.cz> <20150824193242.GE28944@mtj.duckdns.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150824193242.GE28944@mtj.duckdns.org> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1642 Lines: 39 On Mon 24-08-15 15:32:42, Tejun Heo wrote: > Hello, Jan. > > On Mon, Aug 24, 2015 at 09:08:47PM +0200, Jan Kara wrote: > > Inode may contain writeback pages (but not dirty pages) without being on > > any of the dirty lists. That is correct. Josef Bacik had patches to create > > Hmmm... Can you please expand on how / why that happens? It's kinda > weird to require writeback to walk all inodes regardless of their > dirty states. It is inefficient, yes. But note that 'writeback' and 'dirty' states are completely independent. Page can be in any of the !dirty & !writeback, dirty & !writeback, !dirty & writeback, dirty & writeback states. So mixing tracking of writeback and dirty state of an inode just makes the code even messier. > > a list to track inodes with pages under writeback but they clashed with > > your patch series and they didn't get rebased yet AFAIR. > > Wouldn't it make more sense to simply put them on one of the existing > b_* lists? Logically it just doesn't make sense because as I wrote above dirty and writeback states are completely independent. Also you'd have to detect & skip inodes that don't really have any dirty pages to write and all the detection of "is there any data to write" would get more complicated. A separate list for inodes under writeback as Josef did is IMO the cleanest solution. Honza -- Jan Kara SUSE Labs, CR -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/