2015-07-22 22:08:46

by Spencer Baugh

[permalink] [raw]
Subject: [PATCH] target: respond to unknown initiators with sensible REPORT LUNS list length

From: Roland Dreier <[email protected]>

Solaris seems to go beserk if we respond to REPORT LUNS with a
LUN LIST LENGTH of 0.

Signed-off-by: Roland Dreier <[email protected]>
Signed-off-by: Spencer Baugh <[email protected]>
---
drivers/target/target_core_spc.c | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/drivers/target/target_core_spc.c b/drivers/target/target_core_spc.c
index 87d4adb..d8a32e5 100644
--- a/drivers/target/target_core_spc.c
+++ b/drivers/target/target_core_spc.c
@@ -1241,6 +1241,13 @@ sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd)
* See SPC3 r07, page 159.
*/
done:
+ /*
+ * If no real LUNs are accessible, report an allocation length
+ * of 1 LUN to account for virtual LUN 0.
+ */
+ if (lun_count == 0)
+ lun_count = 1;
+
lun_count *= 8;
buf[0] = ((lun_count >> 24) & 0xff);
buf[1] = ((lun_count >> 16) & 0xff);
--
2.5.0.rc3


2015-07-23 09:41:18

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] target: respond to unknown initiators with sensible REPORT LUNS list length

On Wed, Jul 22, 2015 at 03:08:17PM -0700, Spencer Baugh wrote:
> done:
> + /*
> + * If no real LUNs are accessible, report an allocation length
> + * of 1 LUN to account for virtual LUN 0.
> + */
> + if (lun_count == 0)
> + lun_count = 1;
> +

Shouldn't the code actually report the virtual lun zero instead of just
accounting for it?