xfs
[Top] [All Lists]

Re: [PATCH block/for-linus] writeback: fix syncing of I_DIRTY_TIME inode

To: Jan Kara <jack@xxxxxxx>
Subject: Re: [PATCH block/for-linus] writeback: fix syncing of I_DIRTY_TIME inodes
From: Tejun Heo <tj@xxxxxxxxxx>
Date: Mon, 24 Aug 2015 10:51:50 -0400
Cc: Dave Chinner <david@xxxxxxxxxxxxx>, Eryu Guan <eguan@xxxxxxxxxx>, Jens Axboe <axboe@xxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, axboe@xxxxxx, Jan Kara <jack@xxxxxxxx>, linux-fsdevel@xxxxxxxxxxxxxxx, kernel-team@xxxxxx
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=eMW9Nh6Fbyb6KchTtQioJA9M0cSay6Y8Hn9iMvcSqSs=; b=Lg0rSwaKh3yeFjU0jh8INJwyKzhaehMks74tO1KW9Gvo3Rx+Q7yGe7kQHdGMMs8B8a wdEPrMbKPUtNJ19OW1ASJV5U5ZABsvG9+THycmn4+Ef/Pu5dCkjf7Z7tP29LharLuPMk fh5iwJ5zIOR5Cv+P7ZFUgq5/lYvy+DA91m9AU6CsFpvv8z1a5LvFkhP8fiZ/K6Mm9ykx Ydqc+/Vdtt/QRpy4ssxcNH2DKk8hal5eysO6pWPGGkuK09/JpzMVMPbISYYKY94osL5x kdnVlhD+f49mm+j3UiRdwHfXCVtcCFHTbIW1T1E6uqm1FbnWT56wHAuwLyhfTJCPMlaQ SfQQ==
In-reply-to: <20150824091959.GA2936@xxxxxxxxxxxxx>
References: <20150818174718.GA15739@xxxxxxxxxxxxxxx> <20150818195439.GB15739@xxxxxxxxxxxxxxx> <20150818215611.GD3902@dastard> <20150821102053.GL17933@xxxxxxxxxxxxxxxxxxxxxxxxxx> <20150822003025.GS3902@dastard> <20150822044609.GM17933@xxxxxxxxxxxxxxxxxxxxxxxxxx> <20150824011123.GA714@dastard> <20150824031816.GO17933@xxxxxxxxxxxxxxxxxxxxxxxxxx> <20150824062425.GU3902@dastard> <20150824091959.GA2936@xxxxxxxxxxxxx>
Sender: Tejun Heo <htejun@xxxxxxxxx>
User-agent: Mutt/1.5.23 (2014-03-12)
Hello, Jan.

On Mon, Aug 24, 2015 at 11:19:59AM +0200, Jan Kara wrote:
> > which shows unmount being the next writeback event queued and
> > executed after the IO completions have come in (that missed the
> > log). What is missing is the specific queue/exec events for
> > sync_sb_inodes() from the sync code for each filesystem.
> 
> Bah, I see the problem and indeed it was introduced by commit e79729123f639
> "writeback: don't issue wb_writeback_work if clean". The problem is that
> we bail out of sync_inodes_sb() if there is no dirty IO. Which is wrong
> because we have to wait for any outstanding IO (i.e. call wait_sb_inodes())
> regardless of dirty state! And that also explains why Tejun's patch fixes
> the problem because it backs out the change to the exit condition in
> sync_inodes_sb().

Dang, I'm an idiot sandwich.

> So Tejun's patch from this thread is indeed fixing the real problem but the
> comment in sync_inodes_sb() should be fixed to mention wait_sb_inodes()
> must be called in all cases... Tejun, will you fixup the comment please?

Will post an updated patch.  Kudos to Eryu and Dave for chasing it
down.

Thanks a lot.

-- 
tejun

<Prev in Thread] Current Thread [Next in Thread>