Meil/Andre Hello I am happy to see this patch. I have lots of "md" mess with the raid0 reshape because of some md "assumptions". 1. in md_do_sync , max_sectors is determined to be dev_sectors. Currently I had to patch to be array_sectors in the case of level=0. 2. in procedure super_90_sync the minor version is determined by the reshape position ? So now, when i reshape I see that the minor version simply changes . thank you raz On Fri, May 29, 2009 at 4:18 PM, Andre Noll <maan@xxxxxxxxxxxxxxx> wrote: > Currently, the md layer checks in analyze_sbs() if the raid level > supports reconstruction (mddev->level >= 1) and if reconstruction is > in progress (mddev->recovery_cp != MaxSector). > > Move that printk into the personality code of those raid levels that > care (levels 1, 4, 5, 6, 10). > > Signed-off-by: Andre Noll <maan@xxxxxxxxxxxxxxx> > --- > drivers/md/md.c | 9 --------- > drivers/md/raid1.c | 4 ++++ > drivers/md/raid10.c | 4 ++++ > drivers/md/raid5.c | 4 ++++ > 4 files changed, 12 insertions(+), 9 deletions(-) > > diff --git a/drivers/md/md.c b/drivers/md/md.c > index a54ec91..1d71cc2 100644 > --- a/drivers/md/md.c > +++ b/drivers/md/md.c > @@ -2597,15 +2597,6 @@ static void analyze_sbs(mddev_t * mddev) > clear_bit(In_sync, &rdev->flags); > } > } > - > - > - > - if (mddev->recovery_cp != MaxSector && > - mddev->level >= 1) > - printk(KERN_ERR "md: %s: raid array is not clean" > - " -- starting background reconstruction\n", > - mdname(mddev)); > - > } > > static void md_safemode_timeout(unsigned long data); > diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c > index 4692a8a..d29842f 100644 > --- a/drivers/md/raid1.c > +++ b/drivers/md/raid1.c > @@ -2052,6 +2052,10 @@ static int run(mddev_t *mddev) > goto out_free_conf; > } > > + if (mddev->recovery_cp != MaxSector) > + printk(KERN_NOTICE "raid1: %s is not clean" > + " -- starting background reconstruction\n", > + mdname(mddev)); > printk(KERN_INFO > "raid1: raid set %s active with %d out of %d mirrors\n", > mdname(mddev), mddev->raid_disks - mddev->degraded, > diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c > index d75cb96..c317543 100644 > --- a/drivers/md/raid10.c > +++ b/drivers/md/raid10.c > @@ -2186,6 +2186,10 @@ static int run(mddev_t *mddev) > goto out_free_conf; > } > > + if (mddev->recovery_cp != MaxSector) > + printk(KERN_NOTICE "raid10: %s is not clean" > + " -- starting background reconstruction\n", > + mdname(mddev)); > printk(KERN_INFO > "raid10: raid set %s active with %d out of %d devices\n", > mdname(mddev), mddev->raid_disks - mddev->degraded, > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index 9ec505b..cdd5b49 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -4454,6 +4454,10 @@ static int run(mddev_t *mddev) > int working_disks = 0; > mdk_rdev_t *rdev; > > + if (mddev->recovery_cp != MaxSector) > + printk(KERN_NOTICE "raid5: %s is not clean" > + " -- starting background reconstruction\n", > + mdname(mddev)); > if (mddev->reshape_position != MaxSector) { > /* Check that we can continue the reshape. > * Currently only disks can change, it must > -- > 1.5.4.3 > > -- > 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 > -- 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