mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
target/pr: Change alloc_registration to avoid pr_reg_tg_pt_lun
This patch changes __core_scsi3_do_alloc_registration() code to drop pr_reg->pr_reg_tg_pt_lun pointer usage in favor of a new pr_reg RPTI + existing pr_reg->pr_aptpl_target_lun used by APTPL metadata logic. It also includes changes to REGISTER, REGISTER_AND_MOVE and APTPL feature bit codepaths to use rcu_dereference_check() with the expected non-zero se_dev_entry->pr_kref reference held. Reviewed-by: Hannes Reinecke <[email protected]> Cc: Christoph Hellwig <[email protected]> Cc: Sagi Grimberg <[email protected]> Signed-off-by: Nicholas Bellinger <[email protected]>
This commit is contained in:
parent
80bfdfa924
commit
79dc9c9e86
3 changed files with 72 additions and 69 deletions
|
|
@ -372,13 +372,14 @@ struct t10_pr_registration {
|
|||
bool isid_present_at_reg;
|
||||
u32 pr_res_mapped_lun;
|
||||
u32 pr_aptpl_target_lun;
|
||||
u16 tg_pt_sep_rtpi;
|
||||
u32 pr_res_generation;
|
||||
u64 pr_reg_bin_isid;
|
||||
u64 pr_res_key;
|
||||
atomic_t pr_res_holders;
|
||||
struct se_node_acl *pr_reg_nacl;
|
||||
/* Used by ALL_TG_PT=1 registration with deve->pr_ref taken */
|
||||
struct se_dev_entry *pr_reg_deve;
|
||||
struct se_lun *pr_reg_tg_pt_lun;
|
||||
struct list_head pr_reg_list;
|
||||
struct list_head pr_reg_abort_list;
|
||||
struct list_head pr_reg_aptpl_list;
|
||||
|
|
@ -498,7 +499,6 @@ struct se_cmd {
|
|||
struct list_head se_delayed_node;
|
||||
struct list_head se_qf_node;
|
||||
struct se_device *se_dev;
|
||||
struct se_dev_entry *se_deve;
|
||||
struct se_lun *se_lun;
|
||||
/* Only used for internal passthrough and legacy TCM fabric modules */
|
||||
struct se_session *se_sess;
|
||||
|
|
|
|||
Loading…
Reference in a new issue