]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: iscsi: Fix redundant response for ISCSI_UEVENT_GET_HOST_STATS request
authorXiang Zhang <hawkxiang.cpp@gmail.com>
Tue, 7 Jan 2025 02:24:31 +0000 (10:24 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 1 Feb 2025 17:22:32 +0000 (18:22 +0100)
[ Upstream commit 63ca02221cc5aa0731fe2b0cc28158aaa4b84982 ]

The ISCSI_UEVENT_GET_HOST_STATS request is already handled in
iscsi_get_host_stats(). This fix ensures that redundant responses are
skipped in iscsi_if_rx().

 - On success: send reply and stats from iscsi_get_host_stats()
   within if_recv_msg().

 - On error: fall through.

Signed-off-by: Xiang Zhang <hawkxiang.cpp@gmail.com>
Link: https://lore.kernel.org/r/20250107022432.65390-1-hawkxiang.cpp@gmail.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/scsi_transport_iscsi.c

index 074cbd64aa253acf83f6259625656b75bbf13b68..c636a6d3bdcc1586f66c5cec50f106cf6d4f6db3 100644 (file)
@@ -4076,7 +4076,7 @@ iscsi_if_rx(struct sk_buff *skb)
                }
                do {
                        /*
-                        * special case for GET_STATS:
+                        * special case for GET_STATS, GET_CHAP and GET_HOST_STATS:
                         * on success - sending reply and stats from
                         * inside of if_recv_msg(),
                         * on error - fall through.
@@ -4085,6 +4085,8 @@ iscsi_if_rx(struct sk_buff *skb)
                                break;
                        if (ev->type == ISCSI_UEVENT_GET_CHAP && !err)
                                break;
+                       if (ev->type == ISCSI_UEVENT_GET_HOST_STATS && !err)
+                               break;
                        err = iscsi_if_send_reply(portid, nlh->nlmsg_type,
                                                  ev, sizeof(*ev));
                        if (err == -EAGAIN && --retries < 0) {