lkml.org 
[lkml]   [2006]   [May]   [25]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
FromNeil Brown <>
DateFri, 26 May 2006 10:39:25 +1000
SubjectRe: Linux v2.6.17-rc5
On Thursday May 25, torvalds@osdl.org wrote:
> 
> 
> On Thu, 25 May 2006, Luiz Fernando N. Capitulino wrote:
> > 
> >  I'm getting this after running 'halt':
> > 
> > Halting system...
> > md: stopping all md devices.
> > md: md0 switched to read-only mode.
> > Shutdown: hda
> > System halted.
> > BUG: halt/3367, lock held at task exit time!
> >  [dfe70494] {mddev_find}
> > .. held by:              halt: 3367 [decf4a90, 118]
> > ... acquired at:               md_notify_reboot+0x31/0x7f
> 
> Sounds like this is due to df5b89b323b922f56650b4b4d7c41899b937cf19, aka 
> "md: Convert reconfig_sem to reconfig_mutex" by NeilBrown.
> 
> Neil? It may well be (and likely is) an old thing, just exposed by the 
> lock debugging of the new mutexes.
> 
> Was it _meant_ to take the lock and hold it? Looks like it might be the
> 
> 	ITERATE_MDDEV(mddev,tmp)
> 		if (mddev_trylock(mddev))
> 			do_md_stop (mddev, 1);
> 
> (maybe it should release the lock after the md_stop?)
> 
> 		Linus

Yes.  Keith Owens hit this earlier and I have this patch in my
queue.  It has been confirmed to fix the problem.

NeilBrown

------------------------------------
Unlock md devices when stopping them on reboot.
otherwise we get nasty messages about locks not being released.

Signed-off-by: Neil Brown <neilb@suse.de>

### Diffstat output
 ./drivers/md/md.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff ./drivers/md/md.c~current~ ./drivers/md/md.c
--- ./drivers/md/md.c~current~	2006-05-21 08:46:09.000000000 +1000
+++ ./drivers/md/md.c	2006-05-21 08:46:08.000000000 +1000
@@ -5171,8 +5171,10 @@ static int md_notify_reboot(struct notif
 		printk(KERN_INFO "md: stopping all md devices.\n");
 
 		ITERATE_MDDEV(mddev,tmp)
-			if (mddev_trylock(mddev))
+			if (mddev_trylock(mddev)) {
 				do_md_stop (mddev, 1);
+				mddev_unlock(mddev);
+			}
 		/*
 		 * certain more exotic SCSI devices are known to be
 		 * volatile wrt too early system reboots. While the
-
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/
\
 
 \ /
  Last update: 2006-05-26 02:42    [from the cache]
©2003-2008