On Monday January 28, [EMAIL PROTECTED] wrote:
> Hello,
>
> It seems that mdadm/md do not perform proper sanity checks before adding a
> component to a degraded array. If the size of the new component is just
> right,
> the superblock information will overlap with the data area. This will happen
> without any error indications in the syslog or otherwise.
>
> I came up with a reproducible scenario which I am attaching to this email
> alongside with the entire test script. I have not tested it for other raid
> levels, or other types of superblocks, but I suspect the same problem will
> occur for many other configurations.
>
> I am willing to test patches, however the attached script is non-intrusive
> enough to be executed anywhere.
Thanks for the report and the test script.
This patch for mdadm should fix this problem.... I hate the fact that
we sometimes use K and sometimes use sectors for
sizes/offsets... groan.
I'll probably get a test in the kernel as well to guard against this.
Thanks,
NeilBrown
### Diffstat output
./Manage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff .prev/Manage.c ./Manage.c
--- .prev/Manage.c 2008-01-29 11:15:54.000000000 +1100
+++ ./Manage.c 2008-01-29 11:16:15.000000000 +1100
@@ -337,7 +337,7 @@ int Manage_subdevs(char *devname, int fd
/* Make sure device is large enough */
if (tst->ss->avail_size(tst, ldsize/512) <
- array.size) {
+ array.size*2) {
fprintf(stderr, Name ": %s not large
enough to join array\n",
dv->devname);
return 1;
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html