Lines Matching refs:pc_ref

438 	struct nvmet_pr_per_ctrl_ref *pc_ref =  in nvmet_pr_confirm_ns_pc_ref()  local
441 complete(&pc_ref->confirm_done); in nvmet_pr_confirm_ns_pc_ref()
446 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_pr_set_ctrl_to_abort() local
450 xa_for_each(&ns->pr_per_ctrl_refs, idx, pc_ref) { in nvmet_pr_set_ctrl_to_abort()
451 if (uuid_equal(&pc_ref->hostid, hostid)) { in nvmet_pr_set_ctrl_to_abort()
452 percpu_ref_kill_and_confirm(&pc_ref->ref, in nvmet_pr_set_ctrl_to_abort()
454 wait_for_completion(&pc_ref->confirm_done); in nvmet_pr_set_ctrl_to_abort()
594 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_pr_do_abort() local
601 xa_for_each(&ns->pr_per_ctrl_refs, idx, pc_ref) { in nvmet_pr_do_abort()
602 if (percpu_ref_is_dying(&pc_ref->ref)) { in nvmet_pr_do_abort()
603 wait_for_completion(&pc_ref->free_done); in nvmet_pr_do_abort()
604 reinit_completion(&pc_ref->confirm_done); in nvmet_pr_do_abort()
605 reinit_completion(&pc_ref->free_done); in nvmet_pr_do_abort()
606 percpu_ref_resurrect(&pc_ref->ref); in nvmet_pr_do_abort()
991 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_pr_get_ns_pc_ref() local
993 pc_ref = xa_load(&req->ns->pr_per_ctrl_refs, in nvmet_pr_get_ns_pc_ref()
995 if (unlikely(!percpu_ref_tryget_live(&pc_ref->ref))) in nvmet_pr_get_ns_pc_ref()
997 req->pc_ref = pc_ref; in nvmet_pr_get_ns_pc_ref()
1003 struct nvmet_pr_per_ctrl_ref *pc_ref = in nvmet_pr_ctrl_ns_all_cmds_done() local
1006 complete(&pc_ref->free_done); in nvmet_pr_ctrl_ns_all_cmds_done()
1013 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_pr_alloc_and_insert_pc_ref() local
1016 pc_ref = kmalloc(sizeof(*pc_ref), GFP_ATOMIC); in nvmet_pr_alloc_and_insert_pc_ref()
1017 if (!pc_ref) in nvmet_pr_alloc_and_insert_pc_ref()
1020 ret = percpu_ref_init(&pc_ref->ref, nvmet_pr_ctrl_ns_all_cmds_done, in nvmet_pr_alloc_and_insert_pc_ref()
1025 init_completion(&pc_ref->free_done); in nvmet_pr_alloc_and_insert_pc_ref()
1026 init_completion(&pc_ref->confirm_done); in nvmet_pr_alloc_and_insert_pc_ref()
1027 uuid_copy(&pc_ref->hostid, hostid); in nvmet_pr_alloc_and_insert_pc_ref()
1029 ret = xa_insert(&ns->pr_per_ctrl_refs, idx, pc_ref, GFP_KERNEL); in nvmet_pr_alloc_and_insert_pc_ref()
1034 percpu_ref_exit(&pc_ref->ref); in nvmet_pr_alloc_and_insert_pc_ref()
1036 kfree(pc_ref); in nvmet_pr_alloc_and_insert_pc_ref()
1043 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_ctrl_init_pr() local
1072 pc_ref = xa_erase(&ns->pr_per_ctrl_refs, ctrl->cntlid); in nvmet_ctrl_init_pr()
1073 if (pc_ref) in nvmet_ctrl_init_pr()
1074 percpu_ref_exit(&pc_ref->ref); in nvmet_ctrl_init_pr()
1075 kfree(pc_ref); in nvmet_ctrl_init_pr()
1083 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_ctrl_destroy_pr() local
1092 pc_ref = xa_erase(&ns->pr_per_ctrl_refs, ctrl->cntlid); in nvmet_ctrl_destroy_pr()
1093 if (pc_ref) in nvmet_ctrl_destroy_pr()
1094 percpu_ref_exit(&pc_ref->ref); in nvmet_ctrl_destroy_pr()
1095 kfree(pc_ref); in nvmet_ctrl_destroy_pr()
1103 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_pr_init_ns() local
1125 xa_for_each(&ns->pr_per_ctrl_refs, idx, pc_ref) { in nvmet_pr_init_ns()
1127 percpu_ref_exit(&pc_ref->ref); in nvmet_pr_init_ns()
1128 kfree(pc_ref); in nvmet_pr_init_ns()
1136 struct nvmet_pr_per_ctrl_ref *pc_ref; in nvmet_pr_exit_ns() local
1145 xa_for_each(&ns->pr_per_ctrl_refs, idx, pc_ref) { in nvmet_pr_exit_ns()
1149 pc_ref = xa_erase(&ns->pr_per_ctrl_refs, idx); in nvmet_pr_exit_ns()
1150 percpu_ref_exit(&pc_ref->ref); in nvmet_pr_exit_ns()
1151 kfree(pc_ref); in nvmet_pr_exit_ns()