diff options
| author | Christoph Hellwig <hch@infradead.org> | 2012-10-10 17:37:15 -0400 |
|---|---|---|
| committer | Nicholas Bellinger <nab@linux-iscsi.org> | 2012-11-06 23:55:45 -0500 |
| commit | d977f4377fbc396b888e12fdb3b13118b09ca7db (patch) | |
| tree | f3de282b1df951ec599908e24590dbcbac5b9047 /include/target | |
| parent | 019c4ca621488739b1bfb7597a14ac7f0cbcc908 (diff) | |
target: simplify reservations code
We do not support host-level reservations for the pscsi backend, and all
virtual backends are newere than SCSI-2, so just make the combined
SPC-3 + SCSI-2 support the only supported variant and kill the switches
for the different implementations, given that this code handles the no-op
version just fine.
(hch: Update DRF_SPC2_RESERVATIONS lock usage)
Signed-off-by: Christoph Hellwig <hch@lst.de>
Diffstat (limited to 'include/target')
| -rw-r--r-- | include/target/target_core_base.h | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index 15af1307d06..892a93dec19 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h | |||
| @@ -93,8 +93,6 @@ | |||
| 93 | */ | 93 | */ |
| 94 | #define DA_EMULATE_TPWS 0 | 94 | #define DA_EMULATE_TPWS 0 |
| 95 | /* No Emulation for PSCSI by default */ | 95 | /* No Emulation for PSCSI by default */ |
| 96 | #define DA_EMULATE_RESERVATIONS 0 | ||
| 97 | /* No Emulation for PSCSI by default */ | ||
| 98 | #define DA_EMULATE_ALUA 0 | 96 | #define DA_EMULATE_ALUA 0 |
| 99 | /* Enforce SCSI Initiator Port TransportID with 'ISID' for PR */ | 97 | /* Enforce SCSI Initiator Port TransportID with 'ISID' for PR */ |
| 100 | #define DA_ENFORCE_PR_ISIDS 1 | 98 | #define DA_ENFORCE_PR_ISIDS 1 |
| @@ -333,18 +331,6 @@ struct t10_wwn { | |||
| 333 | struct list_head t10_vpd_list; | 331 | struct list_head t10_vpd_list; |
| 334 | }; | 332 | }; |
| 335 | 333 | ||
| 336 | |||
| 337 | /* | ||
| 338 | * Used by TCM Core internally to signal if >= SPC-3 persistent reservations | ||
| 339 | * emulation is enabled or disabled, or running in with TCM/pSCSI passthrough | ||
| 340 | * mode | ||
| 341 | */ | ||
| 342 | typedef enum { | ||
| 343 | SPC_PASSTHROUGH, | ||
| 344 | SPC2_RESERVATIONS, | ||
| 345 | SPC3_PERSISTENT_RESERVATIONS | ||
| 346 | } t10_reservations_index_t; | ||
| 347 | |||
| 348 | struct t10_pr_registration { | 334 | struct t10_pr_registration { |
| 349 | /* Used for fabrics that contain WWN+ISID */ | 335 | /* Used for fabrics that contain WWN+ISID */ |
| 350 | #define PR_REG_ISID_LEN 16 | 336 | #define PR_REG_ISID_LEN 16 |
| @@ -386,18 +372,6 @@ struct t10_pr_registration { | |||
| 386 | struct list_head pr_reg_atp_mem_list; | 372 | struct list_head pr_reg_atp_mem_list; |
| 387 | }; | 373 | }; |
| 388 | 374 | ||
| 389 | /* | ||
| 390 | * This set of function pointer ops is set based upon SPC3_PERSISTENT_RESERVATIONS, | ||
| 391 | * SPC2_RESERVATIONS or SPC_PASSTHROUGH in drivers/target/target_core_pr.c: | ||
| 392 | * core_setup_reservations() | ||
| 393 | */ | ||
| 394 | struct t10_reservation_ops { | ||
| 395 | int (*t10_reservation_check)(struct se_cmd *, u32 *); | ||
| 396 | int (*t10_seq_non_holder)(struct se_cmd *, unsigned char *, u32); | ||
| 397 | int (*t10_pr_register)(struct se_cmd *); | ||
| 398 | int (*t10_pr_clear)(struct se_cmd *); | ||
| 399 | }; | ||
| 400 | |||
| 401 | struct t10_reservation { | 375 | struct t10_reservation { |
| 402 | /* Reservation effects all target ports */ | 376 | /* Reservation effects all target ports */ |
| 403 | int pr_all_tg_pt; | 377 | int pr_all_tg_pt; |
| @@ -408,7 +382,6 @@ struct t10_reservation { | |||
| 408 | #define PR_APTPL_BUF_LEN 8192 | 382 | #define PR_APTPL_BUF_LEN 8192 |
| 409 | u32 pr_aptpl_buf_len; | 383 | u32 pr_aptpl_buf_len; |
| 410 | u32 pr_generation; | 384 | u32 pr_generation; |
| 411 | t10_reservations_index_t res_type; | ||
| 412 | spinlock_t registration_lock; | 385 | spinlock_t registration_lock; |
| 413 | spinlock_t aptpl_reg_lock; | 386 | spinlock_t aptpl_reg_lock; |
| 414 | /* | 387 | /* |
| @@ -424,7 +397,6 @@ struct t10_reservation { | |||
| 424 | struct se_node_acl *pr_res_holder; | 397 | struct se_node_acl *pr_res_holder; |
| 425 | struct list_head registration_list; | 398 | struct list_head registration_list; |
| 426 | struct list_head aptpl_reg_list; | 399 | struct list_head aptpl_reg_list; |
| 427 | struct t10_reservation_ops pr_ops; | ||
| 428 | }; | 400 | }; |
| 429 | 401 | ||
| 430 | struct se_tmr_req { | 402 | struct se_tmr_req { |
| @@ -633,7 +605,6 @@ struct se_dev_attrib { | |||
| 633 | int emulate_tas; | 605 | int emulate_tas; |
| 634 | int emulate_tpu; | 606 | int emulate_tpu; |
| 635 | int emulate_tpws; | 607 | int emulate_tpws; |
| 636 | int emulate_reservations; | ||
| 637 | int emulate_alua; | 608 | int emulate_alua; |
| 638 | int enforce_pr_isids; | 609 | int enforce_pr_isids; |
| 639 | int is_nonrot; | 610 | int is_nonrot; |
