diff options
author | Neil Brown <neilb@suse.de> | 2005-06-07 23:03:47 +0000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2005-06-07 23:03:47 +0000 |
commit | 55935d51800231d7c4ee26fafe5553f8a1471d09 (patch) | |
tree | ba5714b8195ff6ccaf4913a7d29024ce98ac2b9c /mdadm.c | |
parent | e793c2e583740e9364c1285f61e14e687a1fbca1 (diff) | |
download | mdadm-55935d51800231d7c4ee26fafe5553f8a1471d09.tar.gz mdadm-55935d51800231d7c4ee26fafe5553f8a1471d09.tar.xz mdadm-55935d51800231d7c4ee26fafe5553f8a1471d09.zip |
Add support for internal bitmaps
For version 0.90 superblocks, an internal bitmap can be specified at create.
Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
Diffstat (limited to 'mdadm.c')
-rw-r--r-- | mdadm.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -698,6 +698,10 @@ int main(int argc, char *argv[]) fprintf(stderr, Name ": bitmap file needed with -b in --assemble mode\n"); exit(2); } + if (strcmp(optarg, "internal")==0) { + fprintf(stderr, Name ": there is no need to specify --bitmap when assembling arrays with internal bitmaps\n"); + continue; + } bitmap_fd = open(optarg, O_RDWR); if (!*optarg || bitmap_fd < 0) { fprintf(stderr, Name ": cannot open bitmap file %s: %s\n", optarg, strerror(errno)); @@ -863,6 +867,11 @@ int main(int argc, char *argv[]) if (bitmap_chunk == UnSet) bitmap_chunk = DEFAULT_BITMAP_CHUNK; if (delay == 0) delay = DEFAULT_BITMAP_DELAY; if (bitmap_file) { + if (strcmp(bitmap_file, "internal")==0) { + fprintf(stderr, Name ": 'internal' bitmaps not supported with --build\n"); + rv |= 1; + break; + } bitmap_fd = open(bitmap_file, O_RDWR,0); if (bitmap_fd < 0 && errno != ENOENT) { perror(Name ": cannot create bitmap file"); @@ -879,7 +888,6 @@ int main(int argc, char *argv[]) bitmap_file, bitmap_chunk, delay); break; case CREATE: - if (bitmap_chunk == UnSet) bitmap_chunk = DEFAULT_BITMAP_CHUNK; if (delay == 0) delay = DEFAULT_BITMAP_DELAY; if (ss == NULL) { for(i=0; !ss && superlist[i]; i++) @@ -958,7 +966,7 @@ int main(int argc, char *argv[]) case 'Q': rv |= Query(dv->devname); continue; case 'X': - rv |= ExamineBitmap(dv->devname, brief); continue; + rv |= ExamineBitmap(dv->devname, brief, ss); continue; } mdfd = open_mddev(dv->devname, 0); if (mdfd>=0) { |