On Wed, Dec 17, 2008 at 11:17 PM, Neil Brown <neilb@xxxxxxx> wrote: > On Wednesday December 17, jnelson-linux-raid@xxxxxxxxxxx wrote: >> > >> >> It could be that you are hitting the bug fixed by >> >> commit a0da84f35b25875870270d16b6eccda4884d61a7 >> > >> > That sure sounds like it. I'd have to log to see what happened, >> > exactly, but I've added substantial logging around the device >> > discovery and addition section which manages this particular raid. >> > >> >> You would need 2.6.26 or later to have that fixed. >> >> Can you try with a newer kernel??? >> > >> > I hope to be giving opensuse 11.1 a try soon, which uses 2.6.27.X >> > afaik. I suspect I can also backport that patch to 2.6.25 easily. >> >> The kernel source for 2.6.25.18-0.2 (from suse) has this patch >> already, so I was already using it. > > Are you sure? I just looked in the openSUSE-11.0 kernel tree and I > cannot see it there.... > > NeilBrown > > >> >> Perhaps this weekend or some night this week I'll find time to try to >> break things again. >> >> -- >> Jon > jnelson@turnip:~/kernels> rpm -qf /usr/src/linux-2.6.25.18-0.2 kernel-source-2.6.25.18-0.2 jnelson@turnip:~/kernels> rpm -V kernel-source-2.6.25.18-0.2 jnelson@turnip:~/kernels> (cd linux-2.6 && git diff a0da84f35b25875870270d16b6eccda4884d61a7 a0da84f35b25875870270d16b6eccda4884d61a7^ ) > d.diff jnelson@turnip:~/kernels> head d.diff diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c index dedba16..b26927c 100644 --- a/drivers/md/bitmap.c +++ b/drivers/md/bitmap.c @@ -454,11 +454,8 @@ void bitmap_update_sb(struct bitmap *bitmap) spin_unlock_irqrestore(&bitmap->lock, flags); sb = (bitmap_super_t *)kmap_atomic(bitmap->sb_page, KM_USER0); sb->events = cpu_to_le64(bitmap->mddev->events); - if (bitmap->mddev->events < bitmap->events_cleared) { - /* rocking back to read-only */ jnelson@turnip:~/kernels> cp -r /usr/src/linux-2.6.25.18-0.2 . jnelson@turnip:~/kernels/linux-2.6.25.18-0.2> tail -n +454 drivers/md/bitmap.c | head -n 20 { bitmap_super_t *sb; unsigned long flags; if (!bitmap || !bitmap->mddev) /* no bitmap for this array */ return; spin_lock_irqsave(&bitmap->lock, flags); if (!bitmap->sb_page) { /* no superblock */ spin_unlock_irqrestore(&bitmap->lock, flags); return; } spin_unlock_irqrestore(&bitmap->lock, flags); sb = (bitmap_super_t *)kmap_atomic(bitmap->sb_page, KM_USER0); sb->events = cpu_to_le64(bitmap->mddev->events); if (!bitmap->mddev->degraded) sb->events_cleared = cpu_to_le64(bitmap->mddev->events); kunmap_atomic(sb, KM_USER0); write_page(bitmap, bitmap->sb_page, 1); } When I view the diff and the source they appear to agree. -- Jon -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html