diff options
author | Neil Brown <neilb@suse.de> | 2007-12-14 10:14:16 +0100 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2007-12-14 10:14:16 +0100 |
commit | 68c7d6d790f856b4e8301d0afa7fc6873a0d4bb8 (patch) | |
tree | 56f8b050b39fb8008a8b25310fc6f9609796fc26 /Examine.c | |
parent | Allow metadata handlers to free their own superblock. (diff) | |
download | mdadm-68c7d6d790f856b4e8301d0afa7fc6873a0d4bb8.tar.xz mdadm-68c7d6d790f856b4e8301d0afa7fc6873a0d4bb8.zip |
Add 'supertype' arg to almost all metadata methods.
The 'superblock' will be moved into this structure soon.
Diffstat (limited to 'Examine.c')
-rw-r--r-- | Examine.c | 20 |
1 files changed, 11 insertions, 9 deletions
@@ -99,13 +99,15 @@ int Examine(mddev_dev_t devlist, int brief, int scan, continue; if (SparcAdjust) - st->ss->update_super(NULL, super, "sparc2.2", devlist->devname, 0, 0, NULL); + st->ss->update_super(st, NULL, super, "sparc2.2", + devlist->devname, 0, 0, NULL); /* Ok, its good enough to try, though the checksum could be wrong */ if (brief) { struct array *ap; char *d; for (ap=arrays; ap; ap=ap->next) { - if (st->ss == ap->st->ss && st->ss->compare_super(&ap->super, super)==0) + if (st->ss == ap->st->ss && + st->ss->compare_super(&ap->super, super)==0) break; } if (!ap) { @@ -116,10 +118,10 @@ int Examine(mddev_dev_t devlist, int brief, int scan, ap->spares = 0; ap->st = st; arrays = ap; - st->ss->getinfo_super(&ap->info, super); + st->ss->getinfo_super(st, &ap->info, super); } else { - st->ss->getinfo_super(&ap->info, super); - st->ss->free_super(super); + st->ss->getinfo_super(st, &ap->info, super); + st->ss->free_super(st, super); } if (!(ap->info.disk.state & MD_DISK_SYNC)) ap->spares++; @@ -127,8 +129,8 @@ int Examine(mddev_dev_t devlist, int brief, int scan, dl_add(ap->devs, d); } else { printf("%s:\n",devlist->devname); - st->ss->examine_super(super, homehost); - st->ss->free_super(super); + st->ss->examine_super(st, super, homehost); + st->ss->free_super(st, super); } } if (brief) { @@ -136,7 +138,7 @@ int Examine(mddev_dev_t devlist, int brief, int scan, for (ap=arrays; ap; ap=ap->next) { char sep='='; char *d; - ap->st->ss->brief_examine_super(ap->super); + ap->st->ss->brief_examine_super(ap->st, ap->super); if (ap->spares) printf(" spares=%d", ap->spares); if (brief > 1) { printf(" devices"); @@ -145,7 +147,7 @@ int Examine(mddev_dev_t devlist, int brief, int scan, sep=','; } } - ap->st->ss->free_super(ap->super); + ap->st->ss->free_super(ap->st, ap->super); /* FIXME free ap */ if (ap->spares || brief > 1) printf("\n"); |