public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Frederik Deweerdt <deweerdt@free.fr>
To: Oliver Neukum <oliver@neukum.org>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, greg@kroah.com, maneesh@in.ibm.com,
	oliver@neukum.name
Subject: Re: [-mm patch] lockdep: possible deadlock in sysfs
Date: Fri, 5 Jan 2007 16:42:52 +0000	[thread overview]
Message-ID: <20070105164252.GG17863@slug> (raw)
In-Reply-To: <200701051613.25882.oliver@neukum.org>

On Fri, Jan 05, 2007 at 04:13:25PM +0100, Oliver Neukum wrote:
> Am Freitag, 5. Januar 2007 13:16 schrieb Frederik Deweerdt:
> > On Thu, Jan 04, 2007 at 10:02:00PM -0800, Andrew Morton wrote:
> > > 
> > > 	ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc3-mm1/
> > > 
> are you sure there's a code path that takes these locks in the reverse order?
> I've looked through the code twice and not found any. It doesn't make much
> sense to first lock the file and afterwards the directory.
You're right, an annotation should be enough, what do you think?

Regards,
Frederik


Signed-off-by: Frederik Deweerdt <frederik.deweerdt@gmail.com>

diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
index 8c533cb..3b5574b 100644
--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -214,7 +214,7 @@ static inline void orphan_all_buffers(st
 	struct sysfs_buffer_collection *set = node->i_private;
 	struct sysfs_buffer *buf;
 
-	mutex_lock(&node->i_mutex);
+	mutex_lock_nested(&node->i_mutex, I_MUTEX_CHILD);
 	if (node->i_private) {
 		list_for_each_entry(buf, &set->associates, associates) {
 			down(&buf->sem);
@@ -271,7 +271,7 @@ int sysfs_hash_and_remove(struct dentry
 		return -ENOENT;
 
 	parent_sd = dir->d_fsdata;
-	mutex_lock(&dir->d_inode->i_mutex);
+	mutex_lock_nested(&dir->d_inode->i_mutex, I_MUTEX_PARENT);
 	list_for_each_entry(sd, &parent_sd->s_children, s_sibling) {
 		if (!sd->s_element)
 			continue;
 
> Regarding your patch, it should work, but I don't see the need for it.
> 
> 	Regards
> 		Oliver
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

  reply	other threads:[~2007-01-05 16:44 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-05  6:02 2.6.20-rc3-mm1 Andrew Morton
2007-01-05  9:44 ` [-mm patch] lockdep: unbalance at generic_sync_sb_inodes Frederik Deweerdt
2007-01-05 12:16 ` [-mm patch] lockdep: possible deadlock in sysfs Frederik Deweerdt
2007-01-05 12:48   ` Oliver Neukum
2007-01-05 15:13   ` Oliver Neukum
2007-01-05 16:42     ` Frederik Deweerdt [this message]
2007-01-05 16:53       ` Oliver Neukum
2007-01-05 16:23 ` 2.6.20-rc3-mm1 Mariusz Kozlowski
2007-01-05 18:45   ` 2.6.20-rc3-mm1 Tim Schmielau
2007-01-08 12:36     ` 2.6.20-rc3-mm1 Mariusz Kozlowski
2007-01-05 20:55   ` 2.6.20-rc3-mm1 Benjamin Herrenschmidt
2007-01-05 21:15     ` 2.6.20-rc3-mm1 Andrew Morton
2007-01-05 21:24       ` 2.6.20-rc3-mm1 Benjamin Herrenschmidt
2007-01-08 19:32         ` 2.6.20-rc3-mm1 Cornelia Huck
2007-01-08 21:19           ` 2.6.20-rc3-mm1 Benjamin Herrenschmidt
2007-01-06  1:07 ` [-mm patch] make proc_dointvec_taint() static Adrian Bunk
2007-01-06 10:58 ` 2.6.20-rc3-mm1: umount reiser4 FS stuck in D state Laurent Riffard
2007-01-06 14:12   ` Laurent Riffard
2007-01-06 16:37   ` Jens Axboe
2007-01-06 18:58   ` Vladimir V. Saveliev
2007-01-12 22:56     ` Laurent Riffard
2007-01-23 16:40       ` Vladimir V. Saveliev
2007-01-23 15:46         ` Jens Axboe
2007-01-23 18:21           ` Laurent Riffard
2007-02-01 20:04             ` Edward Shishkin
2007-02-01 20:42               ` Laurent Riffard
2007-02-01 21:52                 ` Edward Shishkin
2007-02-02 21:13                   ` Laurent Riffard
2007-01-06 12:55 ` 2.6.20-rc3-mm1 - git-block.patch causes hard lockups Valdis.Kletnieks
2007-01-08  8:55   ` Jens Axboe
2007-01-09 18:03     ` Valdis.Kletnieks
2007-01-06 13:44 ` 2.6.20-rc3-mm1 - rewrite-lock-in-cpufreq-to-eliminate-cpufreq-hotplug-related-issues.patch Valdis.Kletnieks
2007-01-06 16:59   ` Mattia Dongili
2007-01-07  0:29     ` Valdis.Kletnieks
2007-01-06 15:20 ` 2.6.20-rc3-mm1 - reiser4-sb_sync_inodes.patch causes boot hang Valdis.Kletnieks
2007-01-06 19:14   ` Andrew Morton
2007-01-07  0:28     ` Valdis.Kletnieks
2007-01-09 14:40 ` [Re: 2.6.20-rc3-mm1] BUG: at kernel/sched.c:3415 sub_preempt_count() Maciej Rutecki
2007-01-09 15:28   ` Frederik Deweerdt
2007-01-09 20:50     ` Maciej Rutecki
2007-01-09 21:06       ` Frederik Deweerdt
2007-01-10 16:54         ` Maciej Rutecki
2007-01-11 18:28 ` [-mm patch] remove tcp header from tcp_v4_check Frederik Deweerdt

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=20070105164252.GG17863@slug \
    --to=deweerdt@free.fr \
    --cc=akpm@osdl.org \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maneesh@in.ibm.com \
    --cc=oliver@neukum.name \
    --cc=oliver@neukum.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