Lines Matching full:mdi
481 struct g_raid_md_sii_object *mdi; in g_raid_md_sii_start_disk() local
488 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_sii_start_disk()
489 meta = mdi->mdio_meta; in g_raid_md_sii_start_disk()
501 if (!mdi->mdio_started) in g_raid_md_sii_start_disk()
626 if (mdi->mdio_started) { in g_raid_md_sii_start_disk()
627 mdi->mdio_incomplete = in g_raid_md_sii_start_disk()
629 mdi->mdio_total_disks); in g_raid_md_sii_start_disk()
648 struct g_raid_md_sii_object *mdi; in g_raid_md_sii_refill() local
654 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_sii_refill()
659 if (na == mdi->mdio_total_disks) in g_raid_md_sii_refill()
664 "trying to refill.", na, mdi->mdio_total_disks); in g_raid_md_sii_refill()
692 mdi->mdio_incomplete = (g_raid_ndisks(sc, G_RAID_DISK_S_ACTIVE) < in g_raid_md_sii_refill()
693 mdi->mdio_total_disks); in g_raid_md_sii_refill()
696 if (mdi->mdio_incomplete) { in g_raid_md_sii_refill()
708 struct g_raid_md_sii_object *mdi; in g_raid_md_sii_start() local
720 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_sii_start()
721 meta = mdi->mdio_meta; in g_raid_md_sii_start()
730 size = vol->v_mediasize / mdi->mdio_total_disks; in g_raid_md_sii_start()
736 size = vol->v_mediasize / (mdi->mdio_total_disks / 2); in g_raid_md_sii_start()
738 if (mdi->mdio_total_disks == 1) in g_raid_md_sii_start()
746 size = vol->v_mediasize / (mdi->mdio_total_disks - 1); in g_raid_md_sii_start()
755 vol->v_disks_count = mdi->mdio_total_disks; in g_raid_md_sii_start()
765 for (disk_pos = 0; disk_pos < mdi->mdio_total_disks; disk_pos++) { in g_raid_md_sii_start()
801 mdi->mdio_started = 1; in g_raid_md_sii_start()
810 callout_stop(&mdi->mdio_start_co); in g_raid_md_sii_start()
811 G_RAID_DEBUG1(1, sc, "root_mount_rel %p", mdi->mdio_rootmount); in g_raid_md_sii_start()
812 root_mount_rel(mdi->mdio_rootmount); in g_raid_md_sii_start()
813 mdi->mdio_rootmount = NULL; in g_raid_md_sii_start()
821 struct g_raid_md_sii_object *mdi; in g_raid_md_sii_new_disk() local
827 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_sii_new_disk()
831 if (mdi->mdio_started) { in g_raid_md_sii_new_disk()
835 if (mdi->mdio_meta == NULL || in g_raid_md_sii_new_disk()
836 ((int32_t)(pdmeta->generation - mdi->mdio_generation)) > 0) { in g_raid_md_sii_new_disk()
838 if (mdi->mdio_meta != NULL) in g_raid_md_sii_new_disk()
839 free(mdi->mdio_meta, M_MD_SII); in g_raid_md_sii_new_disk()
840 mdi->mdio_meta = sii_meta_copy(pdmeta); in g_raid_md_sii_new_disk()
841 mdi->mdio_generation = mdi->mdio_meta->generation; in g_raid_md_sii_new_disk()
842 mdi->mdio_total_disks = sii_meta_total_disks(pdmeta); in g_raid_md_sii_new_disk()
843 mdi->mdio_disks_present = 1; in g_raid_md_sii_new_disk()
844 } else if (pdmeta->generation == mdi->mdio_generation) { in g_raid_md_sii_new_disk()
845 mdi->mdio_disks_present++; in g_raid_md_sii_new_disk()
847 mdi->mdio_disks_present, in g_raid_md_sii_new_disk()
848 mdi->mdio_total_disks); in g_raid_md_sii_new_disk()
854 if (mdi->mdio_disks_present == mdi->mdio_total_disks) in g_raid_md_sii_new_disk()
864 struct g_raid_md_sii_object *mdi; in g_raid_sii_go() local
868 mdi = (struct g_raid_md_sii_object *)md; in g_raid_sii_go()
869 if (!mdi->mdio_started) { in g_raid_sii_go()
880 struct g_raid_md_sii_object *mdi; in g_raid_md_create_sii() local
883 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_create_sii()
884 mdi->mdio_timestamp[5] = arc4random(); in g_raid_md_create_sii()
885 mdi->mdio_timestamp[4] = arc4random(); in g_raid_md_create_sii()
886 mdi->mdio_timestamp[3] = arc4random(); in g_raid_md_create_sii()
887 mdi->mdio_timestamp[2] = arc4random(); in g_raid_md_create_sii()
888 mdi->mdio_timestamp[1] = arc4random(); in g_raid_md_create_sii()
889 mdi->mdio_timestamp[0] = arc4random(); in g_raid_md_create_sii()
890 mdi->mdio_location = arc4random(); in g_raid_md_create_sii()
891 mdi->mdio_generation = 0; in g_raid_md_create_sii()
893 mdi->mdio_timestamp[5], mdi->mdio_timestamp[4], in g_raid_md_create_sii()
894 mdi->mdio_timestamp[3], mdi->mdio_timestamp[2], in g_raid_md_create_sii()
895 mdi->mdio_timestamp[1], mdi->mdio_timestamp[0]); in g_raid_md_create_sii()
910 struct g_raid_md_sii_object *mdi, *mdi1; in g_raid_md_taste_sii() local
921 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_taste_sii()
996 memcpy(&mdi->mdio_timestamp, &meta->timestamp, 6); in g_raid_md_taste_sii()
997 mdi->mdio_location = meta->raid_location; in g_raid_md_taste_sii()
999 mdi->mdio_timestamp[5], mdi->mdio_timestamp[4], in g_raid_md_taste_sii()
1000 mdi->mdio_timestamp[3], mdi->mdio_timestamp[2], in g_raid_md_taste_sii()
1001 mdi->mdio_timestamp[1], mdi->mdio_timestamp[0]); in g_raid_md_taste_sii()
1005 callout_init(&mdi->mdio_start_co, 1); in g_raid_md_taste_sii()
1006 callout_reset(&mdi->mdio_start_co, g_raid_start_timeout * hz, in g_raid_md_taste_sii()
1008 mdi->mdio_rootmount = root_mount_hold("GRAID-SiI"); in g_raid_md_taste_sii()
1009 G_RAID_DEBUG1(1, sc, "root_mount_hold %p", mdi->mdio_rootmount); in g_raid_md_taste_sii()
1056 struct g_raid_md_sii_object *mdi; in g_raid_md_event_sii() local
1060 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_event_sii()
1064 if (!mdi->mdio_started) in g_raid_md_event_sii()
1114 struct g_raid_md_sii_object *mdi; in g_raid_md_ctl_sii() local
1127 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_ctl_sii()
1269 mdi->mdio_total_disks = numdisks; in g_raid_md_ctl_sii()
1270 mdi->mdio_started = 1; in g_raid_md_ctl_sii()
1480 struct g_raid_md_sii_object *mdi; in g_raid_md_write_sii() local
1486 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_write_sii()
1492 mdi->mdio_generation++; in g_raid_md_write_sii()
1499 if (mdi->mdio_meta) in g_raid_md_write_sii()
1500 memcpy(meta, mdi->mdio_meta, sizeof(*meta)); in g_raid_md_write_sii()
1505 memcpy(&meta->timestamp, &mdi->mdio_timestamp, 6); in g_raid_md_write_sii()
1529 meta->generation = mdi->mdio_generation; in g_raid_md_write_sii()
1537 meta->raid_location = mdi->mdio_location; in g_raid_md_write_sii()
1541 if (mdi->mdio_meta != NULL) in g_raid_md_write_sii()
1542 free(mdi->mdio_meta, M_MD_SII); in g_raid_md_write_sii()
1543 mdi->mdio_meta = meta; in g_raid_md_write_sii()
1651 struct g_raid_md_sii_object *mdi; in g_raid_md_free_sii() local
1653 mdi = (struct g_raid_md_sii_object *)md; in g_raid_md_free_sii()
1654 if (!mdi->mdio_started) { in g_raid_md_free_sii()
1655 mdi->mdio_started = 0; in g_raid_md_free_sii()
1656 callout_stop(&mdi->mdio_start_co); in g_raid_md_free_sii()
1658 "root_mount_rel %p", mdi->mdio_rootmount); in g_raid_md_free_sii()
1659 root_mount_rel(mdi->mdio_rootmount); in g_raid_md_free_sii()
1660 mdi->mdio_rootmount = NULL; in g_raid_md_free_sii()
1662 if (mdi->mdio_meta != NULL) { in g_raid_md_free_sii()
1663 free(mdi->mdio_meta, M_MD_SII); in g_raid_md_free_sii()
1664 mdi->mdio_meta = NULL; in g_raid_md_free_sii()