From: Jeff Layton <jlayton@redhat.com>
To: "J. Bruce Fields" <bfields@fieldses.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
linux-nfs@vger.kernel.org
Subject: Re: nfsd bugfixes for 2.6.35
Date: Thu, 10 Jun 2010 09:45:03 -0400 [thread overview]
Message-ID: <20100610094503.0c7a7637@corrin.poochiereds.net> (raw)
In-Reply-To: <20100609191246.GA12134@fieldses.org>
On Wed, 9 Jun 2010 15:12:47 -0400
"J. Bruce Fields" <bfields@fieldses.org> wrote:
> These two nfsd bugfixes are suitable for 2.6.35:
>
> git://linux-nfs.org/~bfields/linux.git for-2.6.35
>
> Christoph Hellwig (1):
> nfsd: nfsd_setattr needs to call commit_metadata
>
> J. Bruce Fields (2):
> nfsd4: shut down callback queue outside state lock
> Merge branch 'for-2.6.34-incoming' into for-2.6.35-incoming
>
> commit 44b56603c4c476b845a824cff6fe905c6268b2a1
> Merge: c3935e3 b160fda
> Author: J. Bruce Fields <bfields@citi.umich.edu>
> Date: Tue Jun 8 20:05:18 2010 -0400
>
> Merge branch 'for-2.6.34-incoming' into for-2.6.35-incoming
>
> commit c3935e30495869dd611e1cd62253c94ebc7c6c04
> Author: J. Bruce Fields <bfields@citi.umich.edu>
> Date: Fri Jun 4 16:42:08 2010 -0400
>
> nfsd4: shut down callback queue outside state lock
>
> This reportedly causes a lockdep warning on nfsd shutdown. That looks
> like a false positive to me, but there's no reason why this needs the
> state lock anyway.
>
> Reported-by: Jeff Layton <jlayton@redhat.com>
> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
>
FWIW, I figured out the reason for this yesterday...
When destroy_workqueue holds the cpu_add_remove_lock while it's
flushing the workqueue during shutdown. The laundry_wq job locks the
state during its work, so the locks are taken like this:
#0: cpu_add_remove_lock
#1: client_mutex
...after shutting down the laundry_wq, we go to shut down the
callback_wq. While doing that, we take and hold the client_mutex and
then call destroy_workqueue. Now we end up with the locks taken in the
reverse order and we get the lockdep splatter:
#0: client_mutex
#1: cpu_add_remove_lock
...moving the destroy of the callback_wq outside of the client_mutex
seems like the easiest and best fix.
--
Jeff Layton <jlayton@redhat.com>
prev parent reply other threads:[~2010-06-10 13:44 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-09 19:12 nfsd bugfixes for 2.6.35 J. Bruce Fields
2010-06-10 13:45 ` Jeff Layton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100610094503.0c7a7637@corrin.poochiereds.net \
--to=jlayton@redhat.com \
--cc=bfields@fieldses.org \
--cc=linux-nfs@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox