From mboxrd@z Thu Jan 1 00:00:00 1970 From: Grissiom Subject: Re: "BUG: scheduling while atomic: pdflush/30/0x00000002" in latest git Date: Fri, 9 Jan 2009 13:18:14 +0800 Message-ID: References: <1231425472.21528.13.camel@norville.austin.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Cc: linux-kernel@vger.kernel.org, "Arjan van de Ven" , linux-fsdevel To: "Dave Kleikamp" Return-path: Received: from wf-out-1314.google.com ([209.85.200.169]:64111 "EHLO wf-out-1314.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751711AbZAIFSP (ORCPT ); Fri, 9 Jan 2009 00:18:15 -0500 In-Reply-To: <1231425472.21528.13.camel@norville.austin.ibm.com> Content-Disposition: inline Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Thu, Jan 8, 2009 at 22:37, Dave Kleikamp wrote: > > The offender is > http://git.kernel.org/gitweb.cgi?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=efaee192 > > async_synchronize_full_special() shouldn't be called while holding a > spinlock, sb_lock. > > I think this patch should fix it. Arjan, would this work? > > Signed-off-by: Dave Kleikamp > > diff --git a/fs/super.c b/fs/super.c > index cb20744..7d67387 100644 > --- a/fs/super.c > +++ b/fs/super.c > @@ -458,7 +458,6 @@ void sync_filesystems(int wait) > if (sb->s_flags & MS_RDONLY) > continue; > sb->s_need_sync_fs = 1; > - async_synchronize_full_special(&sb->s_async_list); > } > > restart: > @@ -471,6 +470,7 @@ restart: > sb->s_count++; > spin_unlock(&sb_lock); > down_read(&sb->s_umount); > + async_synchronize_full_special(&sb->s_async_list); > if (sb->s_root && (wait || sb->s_dirt)) > sb->s_op->sync_fs(sb, wait); > up_read(&sb->s_umount); > > -- > David Kleikamp > IBM Linux Technology Center > > Problem gone with this patch applied. Thanks for the fixing. -- Cheers, Grissiom