FAILED: patch "[PATCH] target: REPORT LUNS should return LUN 0 even for dynamic ACLs" failed to apply to 4.1-stable tree
Subsystems (2)
[email protected]
maintainerThe patch below does not apply to the 4.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
9c395170a559d3b23dad100b01fc4a89d661c698Mon Sep 17 00:00:00 2001
From: Roland Dreier <[email protected]>
Date: Fri, 24 Jul 2015 12:11:46 -0700
Subject: [PATCH] target: REPORT LUNS should return LUN 0 even for dynamic ACLs
If an initiator doesn't have any real LUNs assigned, we should report LUN 0 and a LUN list length of 1. Some versions of Solaris at least go beserk if we report a LUN list length of 0.
Signed-off-by Roland Dreier <[email protected]>
Cc <[email protected]> # v3.1+
Signed-off-by Nicholas Bellinger <[email protected]>
drivers/target/target_core_spc.c +10 -4
@@ -1221,11 +1221,9 @@ sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd)* coming via a target_core_mod PASSTHROUGH op, and not through * a $FABRIC_MOD. In that case, report LUN=0 only. */ -if (!sess) { -int_to_scsilun (0 , (struct scsi_lun *)&buf[offset]); - lun_count =1 ; +if (!sess) goto done; - } + nacl = sess->se_node_acl;rcu_read_lock ();
@@ -1248,6 +1246,14 @@ sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd)* See SPC3 r07, page 159. */ done: +/* +* If no LUNs are accessible, report virtual LUN 0. +*/ +if (lun_count ==0 ) { +int_to_scsilun (0 , (struct scsi_lun *)&buf[offset]); + lun_count =1 ; + } + lun_count *=8 ; buf[0 ] = ((lun_count >>24 ) &0xff ); buf[1 ] = ((lun_count >>16 ) &0xff );