Lines Matching refs:pd

573 	struct g_raid_md_promise_perdisk *pd;
580 pd = (struct g_raid_md_promise_perdisk *)disk->d_md_data;
583 for (i = 0; i < pd->pd_subdisks; ) {
585 pd->pd_meta[i]->volume_id);
590 free(pd->pd_meta[i], M_MD_PROMISE);
591 for (j = i; j < pd->pd_subdisks - 1; j++)
592 pd->pd_meta[j] = pd->pd_meta[j + 1];
593 pd->pd_meta[pd->pd_subdisks - 1] = NULL;
594 pd->pd_subdisks--;
595 pd->pd_updated = 1;
599 if (pd->pd_subdisks == 0) {
663 struct g_raid_md_promise_perdisk *pd;
670 pd = (struct g_raid_md_promise_perdisk *)disk->d_md_data;
677 md_disk_pos = promise_meta_find_disk(meta, pd->pd_meta[sdn]->disk.id);
689 pd->pd_meta[sdn]->disk.flags & PROMISE_F_DOWN) {
695 free(pd->pd_meta[sdn], M_MD_PROMISE);
696 for (i = sdn; i < pd->pd_subdisks - 1; i++)
697 pd->pd_meta[i] = pd->pd_meta[i + 1];
698 pd->pd_meta[pd->pd_subdisks - 1] = NULL;
699 pd->pd_subdisks--;
708 promise_meta_unused_range(pd->pd_meta, pd->pd_subdisks,
743 if (pd->pd_subdisks == 0) {
777 sd->sd_offset = (((off_t)pd->pd_meta[sdn]->disk_offset_high
778 << 32) + pd->pd_meta[sdn]->disk_offset) * 512;
779 sd->sd_size = (((off_t)pd->pd_meta[sdn]->disk_sectors_high
780 << 32) + pd->pd_meta[sdn]->disk_sectors) * 512;
795 if (pd->pd_meta[sdn]->generation != meta->generation)
799 (((off_t)pd->pd_meta[sdn]->disk_rebuild_high << 32) +
800 pd->pd_meta[sdn]->disk_rebuild) * 512;
806 } else if (pd->pd_meta[sdn]->generation != meta->generation ||
829 struct g_raid_md_promise_perdisk *pd;
869 pd = disk->d_md_data;
870 if (pd->pd_subdisks < PROMISE_MAX_SUBDISKS) {
893 struct g_raid_md_promise_perdisk *pd;
940 pd = disk->d_md_data;
941 for (i = 0; i < pd->pd_subdisks; i++) {
942 if (pd->pd_meta[i]->volume_id == meta->volume_id)
981 struct g_raid_md_promise_perdisk *pd;
989 pd = (struct g_raid_md_promise_perdisk *)disk->d_md_data;
991 if (pd->pd_subdisks == 0) {
997 for (i = 0; i < pd->pd_subdisks; i++) {
998 pdmeta = pd->pd_meta[i];
1036 for (i = 0; i < pd->pd_subdisks; i++) {
1037 pdmeta = pd->pd_meta[i];
1097 struct g_raid_md_promise_perdisk *pd;
1187 pd = malloc(sizeof(*pd), M_MD_PROMISE, M_WAITOK | M_ZERO);
1188 pd->pd_subdisks = subdisks;
1190 pd->pd_meta[i] = metaarr[i];
1192 disk->d_md_data = (void *)pd;
1259 struct g_raid_md_promise_perdisk *pd;
1339 pd = disk->d_md_data;
1340 if (pd->pd_subdisks >= PROMISE_MAX_SUBDISKS) {
1343 diskname, pd->pd_subdisks);
1349 promise_meta_unused_range(pd->pd_meta,
1350 pd->pd_subdisks,
1368 pd = malloc(sizeof(*pd), M_MD_PROMISE, M_WAITOK | M_ZERO);
1370 disk->d_md_data = (void *)pd;
1671 pd = malloc(sizeof(*pd), M_MD_PROMISE, M_WAITOK | M_ZERO);
1675 disk->d_md_data = (void *)pd;
1698 struct g_raid_md_promise_perdisk *pd;
1850 pd = (struct g_raid_md_promise_perdisk *)disk->d_md_data;
1851 for (j = 0; j < pd->pd_subdisks; j++) {
1852 if (pd->pd_meta[j]->volume_id == meta->volume_id)
1855 if (j == pd->pd_subdisks)
1856 pd->pd_subdisks++;
1857 if (pd->pd_meta[j] != NULL)
1858 free(pd->pd_meta[j], M_MD_PROMISE);
1859 pd->pd_meta[j] = promise_meta_copy(meta);
1860 pd->pd_meta[j]->disk = meta->disks[pos];
1861 pd->pd_meta[j]->disk.number = pos;
1862 pd->pd_meta[j]->disk_offset_high =
1864 pd->pd_meta[j]->disk_offset = sd->sd_offset / 512;
1865 pd->pd_meta[j]->disk_sectors_high =
1867 pd->pd_meta[j]->disk_sectors = sd->sd_size / 512;
1869 pd->pd_meta[j]->disk_rebuild_high =
1871 pd->pd_meta[j]->disk_rebuild =
1874 pd->pd_meta[j]->disk_rebuild_high = 0;
1875 pd->pd_meta[j]->disk_rebuild = 0;
1877 pd->pd_meta[j]->disk_rebuild_high = UINT32_MAX;
1878 pd->pd_meta[j]->disk_rebuild = UINT32_MAX;
1880 pd->pd_updated = 1;
1885 pd = (struct g_raid_md_promise_perdisk *)disk->d_md_data;
1888 if (!pd->pd_updated)
1892 for (i = 0; i < pd->pd_subdisks; i++)
1893 g_raid_md_promise_print(pd->pd_meta[i]);
1895 pd->pd_meta, pd->pd_subdisks);
1896 pd->pd_updated = 0;
1907 struct g_raid_md_promise_perdisk *pd;
1912 pd = (struct g_raid_md_promise_perdisk *)tdisk->d_md_data;
1922 if (pd->pd_subdisks > 0 && tdisk->d_consumer != NULL)
1925 for (i = 0; i < pd->pd_subdisks; i++) {
1926 pd->pd_meta[i]->disk.flags |=
1928 pos = pd->pd_meta[i]->disk.number;
1930 pd->pd_meta[i]->disks[pos].flags |=
1933 g_raid_md_promise_print(pd->pd_meta[i]);
1937 pd->pd_meta, pd->pd_subdisks);
1959 struct g_raid_md_promise_perdisk *pd;
1962 pd = (struct g_raid_md_promise_perdisk *)disk->d_md_data;
1963 for (i = 0; i < pd->pd_subdisks; i++) {
1964 if (pd->pd_meta[i] != NULL) {
1965 free(pd->pd_meta[i], M_MD_PROMISE);
1966 pd->pd_meta[i] = NULL;
1969 free(pd, M_MD_PROMISE);