Lines Matching refs:meta
277 intel_get_volume(struct intel_raid_conf *meta, int i) in intel_get_volume() argument
284 mvol = (struct intel_raid_vol *)&meta->disk[meta->total_disks]; in intel_get_volume()
442 g_raid_md_intel_print(struct intel_raid_conf *meta) in g_raid_md_intel_print() argument
452 printf("intel_id <%.24s>\n", meta->intel_id); in g_raid_md_intel_print()
453 printf("version <%.6s>\n", meta->version); in g_raid_md_intel_print()
454 printf("checksum 0x%08x\n", meta->checksum); in g_raid_md_intel_print()
455 printf("config_size 0x%08x\n", meta->config_size); in g_raid_md_intel_print()
456 printf("config_id 0x%08x\n", meta->config_id); in g_raid_md_intel_print()
457 printf("generation 0x%08x\n", meta->generation); in g_raid_md_intel_print()
458 printf("error_log_size %d\n", meta->error_log_size); in g_raid_md_intel_print()
459 printf("attributes 0x%b\n", meta->attributes, in g_raid_md_intel_print()
475 printf("total_disks %u\n", meta->total_disks); in g_raid_md_intel_print()
476 printf("total_volumes %u\n", meta->total_volumes); in g_raid_md_intel_print()
477 printf("error_log_pos %u\n", meta->error_log_pos); in g_raid_md_intel_print()
478 printf("cache_size %u\n", meta->cache_size); in g_raid_md_intel_print()
479 printf("orig_config_id 0x%08x\n", meta->orig_config_id); in g_raid_md_intel_print()
480 printf("pwr_cycle_count %u\n", meta->pwr_cycle_count); in g_raid_md_intel_print()
481 printf("bbm_log_size %u\n", meta->bbm_log_size); in g_raid_md_intel_print()
484 for (i = 0; i < meta->total_disks; i++ ) { in g_raid_md_intel_print()
486 meta->disk[i].serial, meta->disk[i].sectors, in g_raid_md_intel_print()
487 meta->disk[i].sectors_hi, meta->disk[i].id, in g_raid_md_intel_print()
488 meta->disk[i].flags, "\20\01S\02A\03F\04O\05D", in g_raid_md_intel_print()
489 meta->disk[i].owner_cfg_num); in g_raid_md_intel_print()
491 for (i = 0; i < meta->total_volumes; i++) { in g_raid_md_intel_print()
492 mvol = intel_get_volume(meta, i); in g_raid_md_intel_print()
559 intel_meta_copy(struct intel_raid_conf *meta) in intel_meta_copy() argument
563 nmeta = malloc(meta->config_size, M_MD_INTEL, M_WAITOK); in intel_meta_copy()
564 memcpy(nmeta, meta, meta->config_size); in intel_meta_copy()
569 intel_meta_find_disk(struct intel_raid_conf *meta, char *serial) in intel_meta_find_disk() argument
573 for (pos = 0; pos < meta->total_disks; pos++) { in intel_meta_find_disk()
574 if (strncmp(meta->disk[pos].serial, in intel_meta_find_disk()
585 struct intel_raid_conf *meta; in intel_meta_read() local
593 if (pp->sectorsize < sizeof(*meta)) in intel_meta_read()
603 meta = (struct intel_raid_conf *)buf; in intel_meta_read()
606 if (strncmp(meta->intel_id, INTEL_MAGIC, strlen(INTEL_MAGIC))) { in intel_meta_read()
611 if (meta->config_size > 65536 || in intel_meta_read()
612 meta->config_size < sizeof(struct intel_raid_conf)) { in intel_meta_read()
614 meta->config_size); in intel_meta_read()
618 size = meta->config_size; in intel_meta_read()
619 meta = malloc(size, M_MD_INTEL, M_WAITOK); in intel_meta_read()
620 memcpy(meta, buf, min(size, pp->sectorsize)); in intel_meta_read()
624 if (meta->config_size > pp->sectorsize) { in intel_meta_read()
625 left = (meta->config_size - 1) / pp->sectorsize; in intel_meta_read()
633 free(meta, M_MD_INTEL); in intel_meta_read()
636 memcpy(((char *)meta) + pp->sectorsize, buf, in intel_meta_read()
642 for (checksum = 0, ptr = (uint32_t *)meta, i = 0; in intel_meta_read()
643 i < (meta->config_size / sizeof(uint32_t)); i++) { in intel_meta_read()
646 checksum -= meta->checksum; in intel_meta_read()
647 if (checksum != meta->checksum) { in intel_meta_read()
649 free(meta, M_MD_INTEL); in intel_meta_read()
655 sizeof(struct intel_raid_disk) * (meta->total_disks - 1) + in intel_meta_read()
656 sizeof(struct intel_raid_vol) * meta->total_volumes; in intel_meta_read()
657 if (size > meta->config_size) { in intel_meta_read()
660 meta->config_size, size); in intel_meta_read()
661 free(meta, M_MD_INTEL); in intel_meta_read()
664 for (i = 0; i < meta->total_volumes; i++) { in intel_meta_read()
665 mvol = intel_get_volume(meta, i); in intel_meta_read()
668 if (size > meta->config_size) in intel_meta_read()
672 if (size > meta->config_size) in intel_meta_read()
676 if (size > meta->config_size) in intel_meta_read()
681 g_raid_md_intel_print(meta); in intel_meta_read()
683 if (strncmp(meta->version, INTEL_VERSION_1300, 6) > 0) { in intel_meta_read()
685 meta->version); in intel_meta_read()
686 free(meta, M_MD_INTEL); in intel_meta_read()
690 if (strncmp(meta->version, INTEL_VERSION_1300, 6) >= 0 && in intel_meta_read()
691 (meta->attributes & ~INTEL_ATTR_SUPPORTED) != 0) { in intel_meta_read()
693 meta->attributes & ~INTEL_ATTR_SUPPORTED); in intel_meta_read()
694 free(meta, M_MD_INTEL); in intel_meta_read()
699 for (i = 0; i < meta->total_volumes; i++) { in intel_meta_read()
700 mvol = intel_get_volume(meta, i); in intel_meta_read()
705 meta->total_disks) { in intel_meta_read()
709 meta->total_disks); in intel_meta_read()
710 free(meta, M_MD_INTEL); in intel_meta_read()
718 for (i = 0; i < meta->total_volumes; i++) { in intel_meta_read()
719 mvol = intel_get_volume(meta, i); in intel_meta_read()
729 free(meta, M_MD_INTEL); in intel_meta_read()
749 free(meta, M_MD_INTEL); in intel_meta_read()
755 return (meta); in intel_meta_read()
759 intel_meta_write(struct g_consumer *cp, struct intel_raid_conf *meta) in intel_meta_write() argument
769 meta->checksum = 0; in intel_meta_write()
770 for (checksum = 0, ptr = (uint32_t *)meta, i = 0; in intel_meta_write()
771 i < (meta->config_size / sizeof(uint32_t)); i++) { in intel_meta_write()
774 meta->checksum = checksum; in intel_meta_write()
777 sectors = howmany(meta->config_size, pp->sectorsize); in intel_meta_write()
780 memcpy(buf, ((char *)meta) + pp->sectorsize, in intel_meta_write()
783 memcpy(buf + (sectors - 1) * pp->sectorsize, meta, pp->sectorsize); in intel_meta_write()
820 struct intel_raid_conf *meta; in intel_meta_write_spare() local
824 meta = malloc(INTEL_MAX_MD_SIZE(1), M_MD_INTEL, M_WAITOK | M_ZERO); in intel_meta_write_spare()
825 memcpy(&meta->intel_id[0], INTEL_MAGIC, sizeof(INTEL_MAGIC) - 1); in intel_meta_write_spare()
826 memcpy(&meta->version[0], INTEL_VERSION_1000, in intel_meta_write_spare()
828 meta->config_size = INTEL_MAX_MD_SIZE(1); in intel_meta_write_spare()
829 meta->config_id = meta->orig_config_id = arc4random(); in intel_meta_write_spare()
830 meta->generation = 1; in intel_meta_write_spare()
831 meta->total_disks = 1; in intel_meta_write_spare()
832 meta->disk[0] = *d; in intel_meta_write_spare()
833 error = intel_meta_write(cp, meta); in intel_meta_write_spare()
834 free(meta, M_MD_INTEL); in intel_meta_write_spare()
915 struct intel_raid_conf *meta; in g_raid_md_intel_start_disk() local
923 meta = mdi->mdio_meta; in g_raid_md_intel_start_disk()
928 disk_pos = intel_meta_find_disk(meta, pd->pd_disk_meta.serial); in g_raid_md_intel_start_disk()
1019 memcpy(&meta->disk[disk_pos], &pd->pd_disk_meta, in g_raid_md_intel_start_disk()
1024 if ((meta->disk[disk_pos].flags & INTEL_F_DISABLED) && in g_raid_md_intel_start_disk()
1029 else if (meta->disk[disk_pos].flags & INTEL_F_FAILED) in g_raid_md_intel_start_disk()
1031 else if (meta->disk[disk_pos].flags & INTEL_F_SPARE) in g_raid_md_intel_start_disk()
1037 mvol = intel_get_volume(meta, pv->pv_volume_pos); in g_raid_md_intel_start_disk()
1051 if ((meta->disk[disk_pos].flags & INTEL_F_DISABLED) && in g_raid_md_intel_start_disk()
1060 } else if (meta->disk[disk_pos].flags & INTEL_F_FAILED) { in g_raid_md_intel_start_disk()
1165 meta->total_disks); in g_raid_md_intel_start_disk()
1185 struct intel_raid_conf *meta; in g_raid_md_intel_refill() local
1192 meta = mdi->mdio_meta; in g_raid_md_intel_refill()
1198 if (na == meta->total_disks) in g_raid_md_intel_refill()
1203 "trying to refill.", na, meta->total_disks); in g_raid_md_intel_refill()
1230 meta = mdi->mdio_meta; in g_raid_md_intel_refill()
1235 g_raid_ndisks(sc, G_RAID_DISK_S_DISABLED) < meta->total_disks); in g_raid_md_intel_refill()
1253 struct intel_raid_conf *meta; in g_raid_md_intel_start() local
1263 meta = mdi->mdio_meta; in g_raid_md_intel_start()
1266 for (i = 0; i < meta->total_volumes; i++) { in g_raid_md_intel_start()
1267 mvol = intel_get_volume(meta, i); in g_raid_md_intel_start()
1312 for (disk_pos = 0; disk_pos < meta->total_disks; disk_pos++) { in g_raid_md_intel_start()
1315 pd->pd_disk_meta = meta->disk[disk_pos]; in g_raid_md_intel_start()
1319 for (i = 0; i < meta->total_volumes; i++) { in g_raid_md_intel_start()
1320 mvol = intel_get_volume(meta, i); in g_raid_md_intel_start()
1477 struct intel_raid_conf *meta; in g_raid_md_taste_intel() local
1490 meta = NULL; in g_raid_md_taste_intel()
1503 meta = intel_meta_read(cp); in g_raid_md_taste_intel()
1505 if (meta == NULL) { in g_raid_md_taste_intel()
1522 disk_pos = intel_meta_find_disk(meta, serial); in g_raid_md_taste_intel()
1527 if (intel_get_disk_sectors(&meta->disk[disk_pos]) != in g_raid_md_taste_intel()
1530 intel_get_disk_sectors(&meta->disk[disk_pos]), in g_raid_md_taste_intel()
1536 spare = meta->disk[disk_pos].flags & INTEL_F_SPARE; in g_raid_md_taste_intel()
1555 if (mdi1->mdio_config_id == meta->config_id) in g_raid_md_taste_intel()
1571 mdi->mdio_config_id = meta->config_id; in g_raid_md_taste_intel()
1572 mdi->mdio_orig_config_id = meta->orig_config_id; in g_raid_md_taste_intel()
1573 snprintf(name, sizeof(name), "Intel-%08x", meta->config_id); in g_raid_md_taste_intel()
1597 pd->pd_meta = meta; in g_raid_md_taste_intel()
1606 pd->pd_disk_meta = meta->disk[disk_pos]; in g_raid_md_taste_intel()
1624 free(meta, M_MD_INTEL); in g_raid_md_taste_intel()
2352 struct intel_raid_conf *meta; in g_raid_md_write_intel() local
2397 meta = malloc(INTEL_MAX_MD_SIZE(numdisks), in g_raid_md_write_intel()
2399 memcpy(&meta->intel_id[0], INTEL_MAGIC, sizeof(INTEL_MAGIC) - 1); in g_raid_md_write_intel()
2400 meta->config_size = INTEL_MAX_MD_SIZE(numdisks); in g_raid_md_write_intel()
2401 meta->config_id = mdi->mdio_config_id; in g_raid_md_write_intel()
2402 meta->orig_config_id = mdi->mdio_orig_config_id; in g_raid_md_write_intel()
2403 meta->generation = mdi->mdio_generation; in g_raid_md_write_intel()
2404 meta->attributes = INTEL_ATTR_CHECKSUM; in g_raid_md_write_intel()
2405 meta->total_disks = numdisks; in g_raid_md_write_intel()
2410 meta->disk[pd->pd_disk_pos] = pd->pd_disk_meta; in g_raid_md_write_intel()
2412 meta->attributes |= INTEL_ATTR_2TB_DISK; in g_raid_md_write_intel()
2422 mvol = intel_get_volume(meta, vi); in g_raid_md_write_intel()
2435 meta->attributes |= INTEL_ATTR_2TB; in g_raid_md_write_intel()
2437 meta->attributes |= INTEL_ATTR_RAID0; in g_raid_md_write_intel()
2439 meta->attributes |= INTEL_ATTR_RAID1; in g_raid_md_write_intel()
2441 meta->attributes |= INTEL_ATTR_RAID5; in g_raid_md_write_intel()
2443 meta->attributes |= INTEL_ATTR_RAID10; in g_raid_md_write_intel()
2445 meta->attributes |= INTEL_ATTR_RAID1E; in g_raid_md_write_intel()
2447 meta->attributes |= INTEL_ATTR_RAIDCNG; in g_raid_md_write_intel()
2449 meta->attributes |= INTEL_ATTR_EXT_STRIP; in g_raid_md_write_intel()
2588 meta->total_volumes = vi; in g_raid_md_write_intel()
2589 if (vi > 1 || meta->attributes & in g_raid_md_write_intel()
2593 meta->attributes &= INTEL_ATTR_CHECKSUM; in g_raid_md_write_intel()
2594 memcpy(&meta->version[0], version, sizeof(INTEL_VERSION_1000) - 1); in g_raid_md_write_intel()
2597 g_raid_md_intel_print(meta); in g_raid_md_write_intel()
2600 mdi->mdio_meta = meta; in g_raid_md_write_intel()
2609 pd->pd_meta = intel_meta_copy(meta); in g_raid_md_write_intel()
2610 intel_meta_write(disk->d_consumer, meta); in g_raid_md_write_intel()