Lines Matching full:reservation

6  * legacy SPC-2 reservations with compatible reservation handling (CRH=1)
135 * status, but no reservation shall be established and the in target_check_scsi2_reservation_conflict()
136 * persistent reservation shall not be changed, if the command in target_check_scsi2_reservation_conflict()
140 * status, but the persistent reservation shall not be released, in target_check_scsi2_reservation_conflict()
143 * a) An I_T nexus that is a persistent reservation holder; or in target_check_scsi2_reservation_conflict()
145 * all registrants type persistent reservation is present. in target_check_scsi2_reservation_conflict()
173 * with a RESERVATION CONFLICT status. in target_check_scsi2_reservation_conflict()
228 pr_debug("SCSI-2 Released reservation for %s LUN: %llu ->" in target_scsi2_reservation_release()
272 pr_err("SCSI-2 RESERVATION CONFLICT for %s fabric\n", in target_scsi2_reservation_reserve()
309 * the active PR reservation holder when a reservation is present.
322 * RESERVATION CONFLICT on some CDBs */ in core_scsi3_pr_seq_non_holder()
343 * Some commands are only allowed for the persistent reservation in core_scsi3_pr_seq_non_holder()
361 * Each registered I_T Nexus is a reservation holder. in core_scsi3_pr_seq_non_holder()
489 " reservation holder\n", cdb[0], in core_scsi3_pr_seq_non_holder()
496 * WRITE_EXCLUSIVE_* reservation. in core_scsi3_pr_seq_non_holder()
504 " %s CDB: 0x%02x to %s reservation\n", in core_scsi3_pr_seq_non_holder()
513 * non-registered_nexuxes NOT holding the reservation. in core_scsi3_pr_seq_non_holder()
516 * as we expect registered non-reservation holding in core_scsi3_pr_seq_non_holder()
522 " for %s reservation on unregistered" in core_scsi3_pr_seq_non_holder()
537 " reservation\n", cdb[0], in core_scsi3_pr_seq_non_holder()
549 " reservation\n", cdb[0], in core_scsi3_pr_seq_non_holder()
556 " for %s reservation\n", transport_dump_cmd_direction(cmd), in core_scsi3_pr_seq_non_holder()
879 * Set pr_res_holder from caller, the pr_reg who is the reservation in core_scsi3_alloc_aptpl_registration()
888 " metadata\n", (res_holder) ? "+reservation" : ""); in core_scsi3_alloc_aptpl_registration()
907 " new reservation holder TYPE: %s ALL_TG_PT: %d\n", in core_scsi3_aptpl_reserve()
941 * Look for the matching registrations+reservation from those in __core_scsi3_check_aptpl_registration()
980 * If this registration is the reservation holder, in __core_scsi3_check_aptpl_registration()
1236 * is being released is holding the reservation. in core_scsi3_check_implicit_release()
1240 * e) If the I_T nexus is the persistent reservation holder in core_scsi3_check_implicit_release()
1241 * and the persistent reservation is not an all registrants in core_scsi3_check_implicit_release()
1244 * service action with the SERVICE ACTION RESERVATION KEY in core_scsi3_check_implicit_release()
1250 * For 'All Registrants' reservation types, all existing in core_scsi3_check_implicit_release()
1251 * registrations are still processed as reservation holders in core_scsi3_check_implicit_release()
1253 * reservation holder is implicitly released here. in core_scsi3_check_implicit_release()
1260 " UNREGISTER while existing reservation with matching" in core_scsi3_check_implicit_release()
1351 * If the passed se_node_acl matches the reservation holder, in core_scsi3_free_pr_reg_from_nacl()
1352 * release the reservation. in core_scsi3_free_pr_reg_from_nacl()
1775 * The SA Reservation Key from the PROUT is set for the in core_scsi3_decode_spec_i_port()
1890 * reservation holder. in core_scsi3_update_aptpl_buf()
2069 pr_warn("SPC-3 PR: Reservation Key non-zero" in core_scsi3_emulate_pro_register()
2143 * sa_res_key=1 Change Reservation Key for registered I_T Nexus. in core_scsi3_emulate_pro_register()
2153 pr_debug("SPC-3 PR [%s] REGISTER%s: Changed Reservation" in core_scsi3_emulate_pro_register()
2162 * sa_res_key=0 Unregister Reservation Key for registered I_T Nexus. in core_scsi3_emulate_pro_register()
2206 * If the persistent reservation is a registrants only in core_scsi3_emulate_pro_register()
2290 * An application client creates a persistent reservation by issuing in core_scsi3_pro_reserve()
2293 * a) RESERVATION KEY set to the value of the reservation key that is in core_scsi3_pro_reserve()
2307 * b) TYPE field and SCOPE field set to the persistent reservation in core_scsi3_pro_reserve()
2310 * Only one persistent reservation is allowed at a time per logical unit in core_scsi3_pro_reserve()
2311 * and that persistent reservation has a scope of LU_SCOPE. in core_scsi3_pro_reserve()
2319 * See if we have an existing PR reservation holder pointer at in core_scsi3_pro_reserve()
2330 * command from an I_T nexus other than a persistent reservation in core_scsi3_pro_reserve()
2332 * reservation when a persistent reservation already exists for in core_scsi3_pro_reserve()
2334 * RESERVATION CONFLICT status. in core_scsi3_pro_reserve()
2339 " [%s]: %s while reservation already held by" in core_scsi3_pro_reserve()
2353 * If a persistent reservation holder attempts to modify the in core_scsi3_pro_reserve()
2354 * type or scope of an existing persistent reservation, the in core_scsi3_pro_reserve()
2355 * command shall be completed with RESERVATION CONFLICT status. in core_scsi3_pro_reserve()
2362 " while reservation already held by [%s]: %s," in core_scsi3_pro_reserve()
2379 * and scope from a persistent reservation holder, it shall not in core_scsi3_pro_reserve()
2380 * make any change to the existing persistent reservation and in core_scsi3_pro_reserve()
2388 * Otherwise, our *pr_reg becomes the PR reservation holder for said in core_scsi3_pro_reserve()
2398 " reservation holder TYPE: %s ALL_TG_PT: %d\n", in core_scsi3_pro_reserve()
2450 * Go ahead and release the current PR reservation holder. in __core_scsi3_complete_pro_release()
2451 * If an All Registrants reservation is currently active and in __core_scsi3_complete_pro_release()
2469 * If the I_T nexus is a reservation holder, the persistent reservation in __core_scsi3_complete_pro_release()
2472 * persistent reservation. in __core_scsi3_complete_pro_release()
2488 " reservation holder TYPE: %s ALL_TG_PT: %d\n", in __core_scsi3_complete_pro_release()
2529 * If there is no persistent reservation or in response to a persistent in core_scsi3_emulate_pro_release()
2530 * reservation release request from a registered I_T nexus that is not a in core_scsi3_emulate_pro_release()
2531 * persistent reservation holder (see 5.7.10), the device server shall in core_scsi3_emulate_pro_release()
2534 * a) Not release the persistent reservation, if any; in core_scsi3_emulate_pro_release()
2542 * No persistent reservation, return GOOD status. in core_scsi3_emulate_pro_release()
2551 * persistent reservation holder. return GOOD status. in core_scsi3_emulate_pro_release()
2560 * Only the persistent reservation holder (see 5.7.10) is allowed to in core_scsi3_emulate_pro_release()
2561 * release a persistent reservation. in core_scsi3_emulate_pro_release()
2563 * An application client releases the persistent reservation by issuing in core_scsi3_emulate_pro_release()
2565 * an I_T nexus that is a persistent reservation holder with the in core_scsi3_emulate_pro_release()
2568 * a) RESERVATION KEY field set to the value of the reservation key in core_scsi3_emulate_pro_release()
2583 * reservation being released. in core_scsi3_emulate_pro_release()
2589 " reservation from [%s]: %s with different TYPE " in core_scsi3_emulate_pro_release()
2590 "and/or SCOPE while reservation already held by" in core_scsi3_emulate_pro_release()
2602 * In response to a persistent reservation release request from the in core_scsi3_emulate_pro_release()
2603 * persistent reservation holder the device server shall perform a in core_scsi3_emulate_pro_release()
2605 * a) Release the persistent reservation; in core_scsi3_emulate_pro_release()
2607 * c) If the released persistent reservation is a registrants only type in core_scsi3_emulate_pro_release()
2608 * or all registrants type persistent reservation, in core_scsi3_emulate_pro_release()
2614 * d) If the persistent reservation is of any other type, the device in core_scsi3_emulate_pro_release()
2682 * Any application client may release the persistent reservation and in core_scsi3_emulate_pro_clear()
2687 * a) RESERVATION KEY field set to the value of the reservation key in core_scsi3_emulate_pro_clear()
2699 * a) Release the persistent reservation, if any; in core_scsi3_emulate_pro_clear()
2759 * Do an implicit RELEASE of the existing reservation. in __core_scsi3_complete_pro_preempt()
2771 " reservation holder TYPE: %s ALL_TG_PT: %d\n", in __core_scsi3_complete_pro_preempt()
2779 * For PREEMPT_AND_ABORT, add the preempting reservation's in __core_scsi3_complete_pro_preempt()
2862 * If the SERVICE ACTION RESERVATION KEY field does not identify a in core_scsi3_pro_preempt()
2863 * persistent reservation holder or there is no persistent reservation in core_scsi3_pro_preempt()
2864 * holder (i.e., there is no persistent reservation), then the device in core_scsi3_pro_preempt()
2870 * No existing or SA Reservation Key matching reservations.. in core_scsi3_pro_preempt()
2873 * allowed to be processed without a matching SA Reservation Key in core_scsi3_pro_preempt()
2880 * type reservations without a matching SA reservation in core_scsi3_pro_preempt()
2884 * specified by the SERVICE ACTION RESERVATION KEY in core_scsi3_pro_preempt()
2909 * reservation, follow logic in spc4r17 section in core_scsi3_pro_preempt()
2912 * For a ZERO SA Reservation key, release in core_scsi3_pro_preempt()
2914 * release of active persistent reservation. in core_scsi3_pro_preempt()
2916 * For a non-ZERO SA Reservation key, only in core_scsi3_pro_preempt()
2917 * release the matching reservation key from in core_scsi3_pro_preempt()
2944 * RESERVATION KEY field to a value that does not match any in core_scsi3_pro_preempt()
2945 * registered reservation key, then the device server shall in core_scsi3_pro_preempt()
2946 * complete the command with RESERVATION CONFLICT status. in core_scsi3_pro_preempt()
2954 * For an existing all registrants type reservation in core_scsi3_pro_preempt()
2956 * reservation with the new PR type and scope. in core_scsi3_pro_preempt()
2970 * SERVICE ACTION RESERVATION KEY value, without regard for in core_scsi3_pro_preempt()
2972 * reservation. If the SERVICE ACTION RESERVATION KEY field is in core_scsi3_pro_preempt()
2973 * set to zero and an all registrants persistent reservation is in core_scsi3_pro_preempt()
2992 * The PREEMPTing SA reservation key matches that of the in core_scsi3_pro_preempt()
2993 * existing persistent reservation, first, we check if in core_scsi3_pro_preempt()
2994 * we are preempting our own reservation. in core_scsi3_pro_preempt()
2998 * If an all registrants persistent reservation is not in core_scsi3_pro_preempt()
3000 * reservation holder to preempt itself (i.e., a in core_scsi3_pro_preempt()
3003 * SERVICE ACTION RESERVATION KEY value equal to the in core_scsi3_pro_preempt()
3004 * persistent reservation holder's reservation key that in core_scsi3_pro_preempt()
3005 * is received from the persistent reservation holder). in core_scsi3_pro_preempt()
3007 * new persistent reservation and maintain the in core_scsi3_pro_preempt()
3013 * If the SERVICE ACTION RESERVATION KEY field identifies a in core_scsi3_pro_preempt()
3014 * persistent reservation holder (see 5.7.10), the device in core_scsi3_pro_preempt()
3018 * a) Release the persistent reservation for the holder in core_scsi3_pro_preempt()
3019 * identified by the SERVICE ACTION RESERVATION KEY field; in core_scsi3_pro_preempt()
3027 * by the SERVICE ACTION RESERVATION KEY field, except the in core_scsi3_pro_preempt()
3029 * OUT command. If an all registrants persistent reservation in core_scsi3_pro_preempt()
3030 * is present and the SERVICE ACTION RESERVATION KEY field in core_scsi3_pro_preempt()
3054 * persistent reservation and/or registration, with the in core_scsi3_pro_preempt()
3062 * c) Establish a persistent reservation for the preempting in core_scsi3_pro_preempt()
3072 * whose reservation key was not removed, except for the I_T in core_scsi3_pro_preempt()
3099 * All received CDBs for the matching existing reservation and in core_scsi3_pro_preempt()
3105 * new persistent reservation holder, the calling Initiator Port. in core_scsi3_pro_preempt()
3186 * The provided reservation key much match the existing reservation key in core_scsi3_emulate_pro_register_and_move()
3197 * The service active reservation key needs to be non zero in core_scsi3_emulate_pro_register_and_move()
3207 * Determine the Relative Target Port Identifier where the reservation in core_scsi3_emulate_pro_register_and_move()
3385 * A persistent reservation needs to already existing in order to in core_scsi3_emulate_pro_register_and_move()
3391 pr_warn("SPC-3 PR REGISTER_AND_MOVE: No reservation" in core_scsi3_emulate_pro_register_and_move()
3398 * The received on I_T Nexus must be the reservation holder. in core_scsi3_emulate_pro_register_and_move()
3405 " Nexus is not reservation holder\n"); in core_scsi3_emulate_pro_register_and_move()
3411 * From spc4r17 section 5.7.8: registering and moving reservation in core_scsi3_emulate_pro_register_and_move()
3414 * action is received and the established persistent reservation is a in core_scsi3_emulate_pro_register_and_move()
3416 * All Registrants type reservation, then the command shall be completed in core_scsi3_emulate_pro_register_and_move()
3417 * with RESERVATION CONFLICT status. in core_scsi3_emulate_pro_register_and_move()
3422 " reservation for type: %s\n", in core_scsi3_emulate_pro_register_and_move()
3435 * c) Associate the reservation key specified in the SERVICE ACTION in core_scsi3_emulate_pro_register_and_move()
3436 * RESERVATION KEY field with the I_T nexus specified as the in core_scsi3_emulate_pro_register_and_move()
3445 * d) Register the reservation key specified in the SERVICE ACTION in core_scsi3_emulate_pro_register_and_move()
3446 * RESERVATION KEY field; in core_scsi3_emulate_pro_register_and_move()
3450 * reservation key or a different reservation key. in core_scsi3_emulate_pro_register_and_move()
3470 * e) Retain the reservation key specified in the SERVICE ACTION in core_scsi3_emulate_pro_register_and_move()
3471 * RESERVATION KEY field and associated information; in core_scsi3_emulate_pro_register_and_move()
3476 * f) Release the persistent reservation for the persistent reservation in core_scsi3_emulate_pro_register_and_move()
3482 * g) Move the persistent reservation to the specified I_T nexus using in core_scsi3_emulate_pro_register_and_move()
3483 * the same scope and type as the persistent reservation released in in core_scsi3_emulate_pro_register_and_move()
3499 " created new reservation holder TYPE: %s on object RTPI:" in core_scsi3_emulate_pro_register_and_move()
3503 pr_debug("SPC-3 PR Successfully moved reservation from" in core_scsi3_emulate_pro_register_and_move()
3596 * initiator or service action and shall terminate with a RESERVATION in target_scsi3_emulate_pr_out()
3601 " SPC-2 reservation is held, returning" in target_scsi3_emulate_pr_out()
3762 * next reservation key list descriptor. in core_scsi3_pri_read_keys()
3771 * the Reservation key list. The contents of the ADDITIONAL in core_scsi3_pri_read_keys()
3816 * Set the Additional Length to 16 when a reservation is held in core_scsi3_pri_read_reservation()
3825 * Set the Reservation key. in core_scsi3_pri_read_reservation()
3828 * A persistent reservation holder has its reservation key in core_scsi3_pri_read_reservation()
3830 * RESERVE IN command with READ RESERVATION service action as in core_scsi3_pri_read_reservation()
3832 * a) For a persistent reservation of the type Write Exclusive in core_scsi3_pri_read_reservation()
3834 * the reservation key shall be set to zero; or in core_scsi3_pri_read_reservation()
3835 * b) For all other persistent reservation types, the in core_scsi3_pri_read_reservation()
3836 * reservation key shall be set to the registered in core_scsi3_pri_read_reservation()
3837 * reservation key for the I_T nexus that holds the in core_scsi3_pri_read_reservation()
3838 * persistent reservation. in core_scsi3_pri_read_reservation()
3887 buf[2] |= 0x10; /* CRH: Compatible Reservation Hanlding bit. */ in core_scsi3_pri_report_capabilities()
3892 * We are filling in the PERSISTENT RESERVATION TYPE MASK below, so in core_scsi3_pri_report_capabilities()
3906 * Setup the PERSISTENT RESERVATION TYPE MASK from Table 167 in core_scsi3_pri_report_capabilities()
3992 * Set RESERVATION KEY in core_scsi3_pri_read_full_status()
4005 * reservation holder for PR_HOLDER bit. in core_scsi3_pri_read_full_status()
4007 * Also, if this registration is the reservation in core_scsi3_pri_read_full_status()
4008 * holder or there is an All Registrants reservation in core_scsi3_pri_read_full_status()
4128 * initiator or service action and shall terminate with a RESERVATION in target_scsi3_emulate_pr_in()
4133 " SPC-2 reservation is held, returning" in target_scsi3_emulate_pr_in()