Re: weird issues with raid1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux