xfs
[Top] [All Lists]

Re: 3.14-rc2 XFS backtrace because irqs_disabled.

To: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Subject: Re: 3.14-rc2 XFS backtrace because irqs_disabled.
From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 11 Feb 2014 18:52:19 -0800
Cc: Dave Jones <davej@xxxxxxxxxx>, Eric Sandeen <sandeen@xxxxxxxxxxx>, Dave Chinner <david@xxxxxxxxxxxxx>, Linux Kernel <linux-kernel@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=dLHXFvUlWd5mOKXlE+kro0qbGJNLhWTqbZ3DkLXLXWg=; b=H02bXofhd7CXZT0NE2LQDhuk5lXkJWFmjQxk3uEYdFynZMVZfUJS25Hx6qJbAJiAns 3uHrJhl0chCrXGgChXssn4TvIyaXti9MtGUYyMGhXReONlc6uTTpsuiRrxGcs4mY1DZ2 XLxRKwTPufWZz4ttrGwNMpFHGjnHsAgrqLrD3DA2dyjaE3cDKqZmqk7ruZxQ+zhr3c6W z5pPwsFuZKyrGnhocd0GK1+x9A5EEeWWXCdbFC8IPGRiluURQvwbuXY9SZxCkFypFgsu gCHHZxR975hkFQIl6bcalj6BHTshPij7AItIxC21hCCOxAh6TeDpYcxxo0QfU5l7FTmS RHcQ==
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; h=mime-version:sender:in-reply-to:references:date:message-id:subject :from:to:cc:content-type; bh=dLHXFvUlWd5mOKXlE+kro0qbGJNLhWTqbZ3DkLXLXWg=; b=MUlpBpLQx9IB5V5yV/ihbZISECMBjPiEXqB3ou5cWV/patRT9KNMD9oom3K8uCDuek 9d7p07ajVbfYymCMJMacnux4XZxpNSEBm7YYs+BjMQWn44qhr/aL+Esuh0HY/eZBOuZH T0nOjOy0TR/2qk4lkeVusXt2FH8WfJT7O8TQM=
In-reply-to: <20140212010941.GM18016@xxxxxxxxxxxxxxxxxx>
References: <20140211172707.GA1749@xxxxxxxxxx> <20140211210841.GM13647@dastard> <52FA9ADA.9040803@xxxxxxxxxxx> <20140212004403.GA17129@xxxxxxxxxx> <20140212010941.GM18016@xxxxxxxxxxxxxxxxxx>
Sender: linus971@xxxxxxxxx
On Tue, Feb 11, 2014 at 5:09 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> Slap the check in vfs_create(), see if interrupts had been disabled by it or
> by something in ->create().  Since it's reproducible...

path_openat() starts off with a get_empty_filp(), which allocates a
file pointer with GFP_KERNEL. So that should have triggered the
might_sleep warning if irq's were already disabled at that point.

So it's not before that - in particular, it's not in the signal
handling or do_coredump() paths.

Also, at least xfs_buf_lock() - which is much deeper in that chain -
does a down(&bp->b_sema). I'm disguested that that doesn't have a
might_sleep() in it.

Dave, mind adding a "might_sleep()" to the top of
"down[_interruptible]()". It's silly to not have coverage of semaphore
use in bad contexts.

             Linus

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