diff mbox series

[v3] scsi: target: alua: do not report emtpy port group

Message ID 20220912214549.27882-1-d.bogdanov@yadro.com (mailing list archive)
State Accepted
Headers show
Series [v3] scsi: target: alua: do not report emtpy port group | expand

Commit Message

Dmitry Bogdanov Sept. 12, 2022, 9:45 p.m. UTC
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.

Signed-off-by: Dmitry Bogdanov <d.bogdanov@yadro.com>
---
v3:
  update commit message
v2:
  new solution - just skip all empty groups
---
 drivers/target/target_core_alua.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Martin K. Petersen Sept. 16, 2022, 1:43 a.m. UTC | #1
Dmitry,

> 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.

Applied to 6.1/scsi-staging, thanks!
diff mbox series

Patch

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.