aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Dmitry Bogdanov <d.bogdanov@yadro.com> 2022-09-13 00:45:49 +0300
committerGravatar Martin K. Petersen <martin.petersen@oracle.com> 2022-09-15 21:42:44 -0400
commitf04e47e770e5717b1a08639293d189d43af866c7 (patch)
treef8b7d92c93b02e76bef267ebd25c6dd19a6c7ed7
parentscsi: target: core: Set MULTIP bit for se_device with multiple ports (diff)
downloadlinux-f04e47e770e5717b1a08639293d189d43af866c7.tar.gz
linux-f04e47e770e5717b1a08639293d189d43af866c7.tar.bz2
linux-f04e47e770e5717b1a08639293d189d43af866c7.zip
scsi: target: alua: Do not report emtpy port group
The default target port group is always returned in the list of port groups, even if the behaviour is unwanted, i.e. it has no members and non-default port groups are primary port groups. That violates SPC-4 "6.37 REPORT TARGET PORT GROUPS command": Every target port group shall contain at least one target port. The target port group descriptor shall include one target port descriptor for each target port in the target port group. This patch hides port groups with no ports in REPORT TARGET PORT GROUPS response. Link: https://lore.kernel.org/r/20220912214549.27882-1-d.bogdanov@yadro.com Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
-rw-r--r--drivers/target/target_core_alua.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
index fb91423a4e2e..c8470e7c0e10 100644
--- a/drivers/target/target_core_alua.c
+++ b/drivers/target/target_core_alua.c
@@ -164,6 +164,9 @@ target_emulate_report_target_port_groups(struct se_cmd *cmd)
spin_lock(&dev->t10_alua.tg_pt_gps_lock);
list_for_each_entry(tg_pt_gp, &dev->t10_alua.tg_pt_gps_list,
tg_pt_gp_list) {
+ /* Skip empty port groups */
+ if (!tg_pt_gp->tg_pt_gp_members)
+ continue;
/*
* Check if the Target port group and Target port descriptor list
* based on tg_pt_gp_members count will fit into the response payload.