From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fengguang Wu Subject: Re: writeback: bad unlock balance detected in 3.5-rc1 Date: Sat, 9 Jun 2012 01:00:51 +0900 Message-ID: <20120608160051.GA1111@localhost> References: <20120608150736.GF21080@quack.suse.cz> <20120608154535.GA887@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: QUOTED-PRINTABLE Cc: Jan Kara , Theodore Ts'o , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org To: sedat.dilek@gmail.com Return-path: Content-Disposition: inline In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Fri, Jun 08, 2012 at 05:51:48PM +0200, Sedat Dilek wrote: > On Fri, Jun 8, 2012 at 5:45 PM, Fengguang Wu = wrote: > > On Fri, Jun 08, 2012 at 05:07:36PM +0200, Jan Kara wrote: > >> On Fri 08-06-12 10:36:13, Ted Tso wrote: > >> > > >> > I can reproduce this fairly easily by using ext4 w/o a journal, = running > >> > under KVM with 1024megs memory, with fsstress (xfstests #13): > > > > Good catch, thanks! > > > >> =C2=A0 Argh, I wonder how come I didn't hit this. Does attached pa= tch fix the > >> problem? > > > >> diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c > >> index 8d2fb8c..41a3ccf 100644 > >> --- a/fs/fs-writeback.c > >> +++ b/fs/fs-writeback.c > >> @@ -664,6 +664,7 @@ static long writeback_sb_inodes(struct super_b= lock *sb, > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 /* Wait for I_SYNC. This function drops i_lock... */ > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 inode_sleep_on_writeback(inode); > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 /* Inode may be gone, start again */ > >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 spin_lock(&wb->list_lock); > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 continue; > >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } > > > > That looks like the fix. So I pushed it to writeback-for-next. > > Thanks for the quick fixing! > > >=20 > s/writeback-for-next/writeback-for-linus ? I use the same branch for next and linus.. Before sending git pull requests, I add a tag somewhere in the branch and ask Linus to pull that tag :) Thanks, =46engguang