In a case of nr_zones < nr_copies of deleted VDI, current sheep panics because it cannot obtain correct list of nodes which hold target ledgers. This patch solves the problem.
Reported-by: Valerio Pachera <[email protected]> Tested-by: Valerio Pachera <[email protected]> Signed-off-by: Hitoshi Mitake <[email protected]> --- sheep/ops.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/sheep/ops.c b/sheep/ops.c index 60aff8a..f018115 100644 --- a/sheep/ops.c +++ b/sheep/ops.c @@ -1186,10 +1186,9 @@ int peer_decref_object(struct request *req) if (is_zero_ledger(ledger)) { struct sd_node *nodes[SD_MAX_COPIES]; int nr_copies; - uint32_t vid; - vid = oid_to_vid(ledger_oid); - nr_copies = get_vdi_copy_number(vid); + nr_copies = get_obj_copy_number(ledger_oid, + req->vinfo->nr_zones); memset(nodes, 0, sizeof(nodes)); /* reclaim object */ -- 1.8.3.2 -- sheepdog mailing list [email protected] https://lists.wpkg.org/mailman/listinfo/sheepdog
