return 1;
} else if (strcmp(file, "internal") == 0) {
int d;
+ if (st->ss->add_internal_bitmap == NULL) {
+ fprintf(stderr, Name ": Internal bitmaps not supported "
+ "with %s metadata\n", st->ss->name);
+ return 1;
+ }
for (d=0; d< st->max_devs; d++) {
mdu_disk_info_t disk;
char *dv;
goto release;
}
ioctl(fd, GET_ARRAY_INFO, &array);
- size = get_component_size(fd);
+ size = get_component_size(fd)/2;
if (size == 0)
size = array.size;
if (!quiet)
devname, size);
changed = 1;
} else {
- size = get_component_size(fd);
+ size = get_component_size(fd)/2;
if (size == 0)
size = array.size;
}
bsb.sb_csum2 = bsb_csum((char*)&bsb,
((char*)&bsb.sb_csum2)-((char*)&bsb));
- rv |= lseek64(destfd[i], destoffsets[i] - 4096, 0);
+ if (lseek64(destfd[i], destoffsets[i] - 4096, 0) != destoffsets[i] - 4096)
+ rv = 1;
rv = rv ?: write(destfd[i], &bsb, 512);
if (destoffsets[i] > 4096) {
- rv |= lseek64(destfd[i], destoffsets[i]+stripes*chunk*odata, 0);
+ if (lseek64(destfd[i], destoffsets[i]+stripes*chunk*odata, 0) !=
+ destoffsets[i]+stripes*chunk*odata)
+ rv = 1;
rv = rv ?: write(destfd[i], &bsb, 512);
}
fsync(destfd[i]);
if (memcmp(bsb.magic, "md_backup_data-2", 16) == 0)
bsb.sb_csum2 = bsb_csum((char*)&bsb,
((char*)&bsb.sb_csum2)-((char*)&bsb));
- rv |= lseek64(destfd[i], destoffsets[i]-4096, 0);
+ if (lseek64(destfd[i], destoffsets[i]-4096, 0) !=
+ destoffsets[i]-4096)
+ rv = 1;
rv = rv ?: write(destfd[i], &bsb, 512);
fsync(destfd[i]);
}