Lines Matching refs:md

314 		struct g_virstor_metadata md;
407 fill_metadata(sc, &md, nc, *hardcode);
408 write_metadata(cp, &md);
477 struct g_virstor_metadata md;
489 read_metadata(sc->components[n].gcons, &md);
490 md.chunk_next = sc->components[n].chunk_next;
491 md.flags = sc->components[n].flags;
492 md.md_count = sc->n_components;
493 write_metadata(sc->components[n].gcons, &md);
498 * Fills metadata (struct md) from information stored in softc and the nc'th
502 fill_metadata(struct g_virstor_softc *sc, struct g_virstor_metadata *md,
507 bzero(md, sizeof *md);
510 strncpy(md->md_magic, G_VIRSTOR_MAGIC, sizeof md->md_magic);
511 md->md_version = G_VIRSTOR_VERSION;
512 strncpy(md->md_name, sc->geom->name, sizeof md->md_name);
513 md->md_id = sc->id;
514 md->md_virsize = sc->virsize;
515 md->md_chunk_size = sc->chunk_size;
516 md->md_count = sc->n_components;
519 strncpy(md->provider, c->gcons->provider->name,
520 sizeof md->provider);
522 md->no = nc;
523 md->provsize = c->gcons->provider->mediasize;
524 md->chunk_count = c->chunk_count;
525 md->chunk_next = c->chunk_next;
526 md->chunk_reserved = c->chunk_reserved;
527 md->flags = c->flags;
780 struct g_virstor_metadata md;
798 error = read_metadata(cp, &md);
806 if (strcmp(md.md_magic, G_VIRSTOR_MAGIC) != 0)
808 if (md.md_version != G_VIRSTOR_VERSION) {
811 md.md_name, pp->name, md.md_version, G_VIRSTOR_VERSION);
814 if (md.provsize != pp->mediasize)
820 if (md.provider[0] != '\0' &&
821 !g_compare_names(md.provider, pp->name))
834 if (strcmp(md.md_name, sc->geom->name) != 0)
836 if (md.md_id != sc->id)
841 LOG_MSG(LVL_INFO, "Adding %s to %s", pp->name, md.md_name);
842 error = add_provider_to_geom(sc, pp, &md);
845 pp->name, md.md_name, error);
849 gp = create_virstor_geom(mp, &md);
852 "class %s: %s", mp->name, md.md_name);
854 md.md_name, pp->name);
859 md.md_name);
860 error = add_provider_to_geom(sc, pp, &md);
863 pp->name, md.md_name, error);
993 read_metadata(struct g_consumer *cp, struct g_virstor_metadata *md)
1012 virstor_metadata_decode(buf, md);
1028 write_metadata(struct g_consumer *cp, struct g_virstor_metadata *md)
1034 KASSERT(cp != NULL && md != NULL && cp->provider != NULL,
1048 virstor_metadata_encode(md, buf);
1065 create_virstor_geom(struct g_class *mp, struct g_virstor_metadata *md)
1071 md->md_name, md->md_id);
1073 if (md->md_count < 1 || md->md_chunk_size < 1 ||
1074 md->md_virsize < md->md_chunk_size) {
1078 md->md_name);
1085 if (sc != NULL && strcmp(sc->geom->name, md->md_name) == 0) {
1087 md->md_name);
1088 if (sc->id != md->md_id) {
1102 gp = g_new_geomf(mp, "%s", md->md_name);
1112 sc->id = md->md_id;
1113 sc->n_components = md->md_count;
1114 sc->components = malloc(sizeof(struct g_virstor_component) * md->md_count,
1116 sc->chunk_size = md->md_chunk_size;
1117 sc->virsize = md->md_virsize;
1136 struct g_virstor_metadata *md)
1143 if (md->no >= sc->n_components)
1147 component = &(sc->components[md->no]);
1186 component->index = md->no;
1187 component->chunk_count = md->chunk_count;
1188 component->chunk_next = md->chunk_next;
1189 component->chunk_reserved = md->chunk_reserved;
1190 component->flags = md->flags;