Re: Re: fr1-2.16 patch for 2.6.10 kernel
denis bonnenfant <[email protected]>
| Newsgroups | gmane.linux.enbd.general |
|---|---|
| Message-ID | <[email protected]> |
> You might want to try the obvious changes (- 1 -> - 2, twice).
Ok, It works, Although not really clean?
>>The behavior is exactly the same as friday, bitmap seems to be still
>>> remanent. But this was not the suject of this patch, i guess.
>
>
> Wel, that certainly doesn't show it. I wanted to know if the
> bitmap->stop(bitmap) call makes any difference. If it doesn't, you can
> try
>
> remove_bitmap(conf); create_bitmap(conf);
Changed it too, but remanence is still there.
It's strange, as normally the bitmap is cleared for any successful write
during resync, but it seems that it remains untouched from a cycle to
another one. Maybe a cache effect ?
Anyway, normally it's here :
(raid1.c)
* on writes, clear the bitmap if all disks were written
*/
int uptodate = test_bit(R1BIO_Uptodate, &r1_bio->state);
conf_t *conf = mddev_to_conf(r1_bio->mddev);
/* if we should mark the bitmap clean, do so */
if (uptodate && bio_data_dir(bio) == WRITE
&& r1_bio->nonoperational <= 0) {
struct bitmap * bitmap = conf->bitmap;
if (bitmap && bitmap->active(bitmap)) {
bitmap->clearbits(bitmap,
bio->bi_sector >> 1, bio->bi_size >> 10);
}
}
I'm going to add some printks here...