Only happens on kernel with 32 bit sector_t.
if (must_close) close(mdfd);
return 0;
}
- if (verbose >= 0) {
+ if (verbose >= -1) {
fprintf(stderr, Name ": %s assembled from %d drive%s", mddev, okcnt, okcnt==1?"":"s");
if (sparecnt)
fprintf(stderr, " and %d spare%s", sparecnt, sparecnt==1?"":"s");
info->array.ctime = __le64_to_cpu(sb->ctime);
info->array.utime = __le64_to_cpu(sb->utime);
info->array.chunk_size = __le32_to_cpu(sb->chunksize)*512;
- info->array.state = (__le64_to_cpu(sb->resync_offset)+1) ? 0 : 1;
+ info->array.state =
+ (__le64_to_cpu(sb->resync_offset) >= __le64_to_cpu(sb->size))
+ ? 1 : 0;
info->data_offset = __le64_to_cpu(sb->data_offset);
info->component_size = __le64_to_cpu(sb->size);