Lines Matching refs:hsp

95 	hot_spare_pool_t	*hsp;
103 hsp = find_hot_spare_pool(setno, shs->shs_hot_spare_pool);
104 if (hsp != (hot_spare_pool_t *)0)
132 hsp = (hot_spare_pool_t *)mddb_getrecaddr_resize(recid, sizeof (*hsp),
135 hsp->hsp_self_id = shs->shs_hot_spare_pool;
136 hsp->hsp_record_id = recid;
137 hsp->hsp_next = (hot_spare_pool_t *)md_set[setno].s_hsp;
138 hsp->hsp_refcount = 0;
139 hsp->hsp_nhotspares = 0;
140 hsp->hsp_revision |= MD_FN_META_DEV;
142 md_set[setno].s_hsp = (void *) hsp;
146 md_expldev(hsp->hsp_self_id));
149 hsp->hsp_link.ln_next = hotspares_md_ops.md_head;
150 hsp->hsp_link.ln_setno = setno;
151 hsp->hsp_link.ln_id = hsp->hsp_self_id;
152 hotspares_md_ops.md_head = &hsp->hsp_link;
163 hot_spare_pool_t *hsp;
289 hsp = (hot_spare_pool_t *)md_set[setno].s_hsp;
291 while (hsp) {
292 if (hsp->hsp_self_id == shs->shs_hot_spare_pool) {
295 prev_hsp = hsp;
296 hsp = hsp->hsp_next;
299 if (hsp == NULL) {
311 hsp = (hot_spare_pool_t *)mddb_getrecaddr_resize(recid,
312 sizeof (*hsp), HSP_ONDSK_STR_OFF);
314 hsp->hsp_self_id = shs->shs_hot_spare_pool;
315 hsp->hsp_record_id = recid;
316 hsp->hsp_next = (hot_spare_pool_t *)md_set[setno].s_hsp;
317 hsp->hsp_refcount = 0;
318 hsp->hsp_nhotspares = 0;
319 hsp->hsp_revision |= MD_FN_META_DEV;
321 /* force prev_hsp to NULL, this will cause hsp to be linked */
325 hsp->hsp_link.ln_next = hotspares_md_ops.md_head;
326 hsp->hsp_link.ln_setno = setno;
327 hsp->hsp_link.ln_id = hsp->hsp_self_id;
328 hotspares_md_ops.md_head = &hsp->hsp_link;
336 for (i = 0; i < hsp->hsp_nhotspares; i++)
337 if (hsp->hsp_hotspares[i] == hs->hs_record_id) {
349 (sizeof (mddb_recid_t) * hsp->hsp_nhotspares);
355 if (hsp->hsp_revision & MD_FN_META_DEV) {
365 hsp->hsp_self_id));
368 (sizeof (mddb_recid_t) * hsp->hsp_nhotspares);
375 bcopy((caddr_t)hsp, (caddr_t)new_hsp,
377 (sizeof (mddb_recid_t) * hsp->hsp_nhotspares)
381 md_rem_link(setno, hsp->hsp_self_id,
392 /* mark the old hsp to be deleted */
394 old_hsp = hsp;
395 hsp = new_hsp;
406 recids[1] = hsp->hsp_record_id;
416 hsp->hsp_hotspares[hsp->hsp_nhotspares] = hs->hs_record_id;
417 hsp->hsp_nhotspares++;
424 prev_hsp->hsp_next = hsp;
426 md_set[setno].s_hsp = (void *) hsp;
441 md_expldev(hsp->hsp_self_id));
444 md_expldev(hsp->hsp_self_id));
455 hot_spare_pool_t *hsp;
463 hsp = (hot_spare_pool_t *)md_set[setno].s_hsp;
464 while (hsp) {
465 if (hsp->hsp_self_id == shs->shs_hot_spare_pool) {
468 prev_hsp = hsp;
469 hsp = hsp->hsp_next;
472 if (hsp == NULL) {
477 if (hsp->hsp_nhotspares != 0) {
482 if (hsp->hsp_refcount != 0) {
496 prev_hsp->hsp_next = hsp->hsp_next;
498 md_set[setno].s_hsp = (void *) hsp->hsp_next;
500 hspid = hsp->hsp_self_id;
502 md_rem_link(setno, hsp->hsp_self_id,
506 mddb_deleterec_wrapper(hsp->hsp_record_id);
519 hot_spare_pool_t *hsp;
602 hsp = find_hot_spare_pool(setno, shs->shs_hot_spare_pool);
603 if (hsp == (hot_spare_pool_t *)0) {
615 if (hsp->hsp_refcount && (hs->hs_state == HSS_RESERVED)) {
623 for (i = 0; i < hsp->hsp_nhotspares; i++) {
624 if (hsp->hsp_hotspares[i] == hs->hs_record_id) {
629 if (i >= hsp->hsp_nhotspares) {
641 recids[1] = hsp->hsp_record_id;
660 recids[0] = hsp->hsp_record_id;
664 /* find the location of the hs in the hsp */
665 for (i = 0; i < hsp->hsp_nhotspares; i++) {
666 if (hsp->hsp_hotspares[i] == hs->hs_record_id)
670 /* remove the hs from the hsp */
671 for (i++; i < hsp->hsp_nhotspares; i++)
672 hsp->hsp_hotspares[i - 1] = hsp->hsp_hotspares[i];
674 hsp->hsp_nhotspares--;
685 md_expldev(hsp->hsp_self_id));
696 hot_spare_pool_t *hsp;
786 hsp = find_hot_spare_pool(setno, shs->shs_hot_spare_pool);
787 if (hsp == (hot_spare_pool_t *)0) {
795 for (i = 0; i < hsp->hsp_nhotspares; i++) {
796 if (hsp->hsp_hotspares[i] == hs->hs_record_id) {
800 if (i >= hsp->hsp_nhotspares) {
818 * We don't have to search the hs in this hsp, if the
822 for (i = 0; i < hsp->hsp_nhotspares; i++)
823 if (hsp->hsp_hotspares[i] == new_hs->hs_record_id) {
877 recids[2] = hsp->hsp_record_id;
898 recids[1] = hsp->hsp_record_id;
910 /* find the location of the old hs in the hsp */
911 for (i = 0; i < hsp->hsp_nhotspares; i++) {
912 if (hsp->hsp_hotspares[i] == hs->hs_record_id) {
913 hsp->hsp_hotspares[i] = new_hs->hs_record_id;
933 md_expldev(hsp->hsp_self_id));
1057 build_key_list(set_t setno, hot_spare_pool_t *hsp, mdkey_t *list)
1061 for (i = 0; i < hsp->hsp_nhotspares; i++) {
1063 hs = lookup_hot_spare(setno, hsp->hsp_hotspares[i], 1);
1074 hot_spare_pool_t *hsp;
1087 hsp = find_hot_spare_pool(setno, migp->id);
1088 if (hsp == NULL) {
1093 size = (sizeof (ghsp->ghsp_hs_keys[0]) * (hsp->hsp_nhotspares - 1)) +
1106 ghsp->ghsp_id = hsp->hsp_self_id;
1107 ghsp->ghsp_refcount = hsp->hsp_refcount;
1108 ghsp->ghsp_nhotspares = hsp->hsp_nhotspares;
1109 build_key_list(setno, hsp, ghsp->ghsp_hs_keys);
1345 hot_spare_pool_t *hsp;
1361 hsp = (hot_spare_pool_t *)mddb_getrecaddr_resize(recid, hsp_icsize,
1363 hsp->hsp_next = (hot_spare_pool_t *)md_set[setno].s_hsp;
1364 md_set[setno].s_hsp = (void *) hsp;
1367 hsp->hsp_link.ln_next = hotspares_md_ops.md_head;
1368 hsp->hsp_link.ln_setno = setno;
1369 hsp->hsp_link.ln_id = hsp->hsp_self_id;
1370 hotspares_md_ops.md_head = &hsp->hsp_link;
1422 hot_spare_pool_t *hsp, **p_hsp;
1453 hsp = (hot_spare_pool_t *)md_set[setno].s_hsp;
1454 for (; hsp != NULL; hsp = *p_hsp) {
1455 md_rem_link(setno, hsp->hsp_self_id,
1458 *p_hsp = hsp->hsp_next;
1500 hot_spare_pool_t *hsp;
1506 hsp = find_hot_spare_pool(setno, id);
1507 if (hsp == NULL)
1510 for (i = 0; i < hsp->hsp_nhotspares; i++) {
1511 hs = usable_hs(setno, hsp->hsp_hotspares[i],
1539 hot_spare_pool_t *hsp;
1552 hsp = find_hot_spare_pool(setno, id);
1553 if (hsp == NULL)
1556 for (i = 0; i < hsp->hsp_nhotspares; i++) {
1557 hs = lookup_hot_spare(setno, hsp->hsp_hotspares[i], 1);
1583 hot_spare_pool_t *hsp;
1590 hsp = find_hot_spare_pool(setno, id);
1591 if (hsp == NULL)
1595 hsp->hsp_refcount++;
1597 hsp->hsp_refcount--;
1599 *hsp_id = hsp->hsp_record_id;
1601 /* NOTE: Stripe code commits the hsp record */