Re: linear : divide error: 0000

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

 



> This sector_div() is in linear_conf() while the call trace indicates
> the bug happens in mddev_put(). I'll have a deeper look later today.
>
> Is this a recent regression?

Sorry, I don't know.  2.6.24.4 has the some problem.

the code linear.c :

158              min_spacing = conf->array_sectors / 2;
159              sector_div(min_spacing, PAGE_SIZE/sizeof(struct dev_info *));

if the array size is less then 1024K and the system is 32 based,
min_spacing will be ZERO.

174               if (sz >= min_spacing && sz < conf->hash_spacing)
175                              conf->hash_spacing = sz;

when min_spacing is ZERO then the hash_spacing is ZERO, too.

199               base = conf->hash_spacing >> conf->preshift;
200               round = sector_div(sz, base);

here is base is ZERO, and case didive error.

raid of less then 1M size is really unusual, just refusing the request is OK.

Correct me if I have something wrong.  Thanks a lot.
--
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