From: Daniel Wagner <dwagner@suse.de>
Date: Fri, 12 Apr 2024 11:03:27 +0000 (+0200)
Subject: Revert "fabrics: retry discovery log page when DNR is not set"
X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=7cf916fafdd43589ff9bf56ca6fa29e60e8b1889;p=users%2Fsagi%2Flibnvme.git

Revert "fabrics: retry discovery log page when DNR is not set"

This reverts commit 2f27d849889c9a452dbe49fda31e53149b7e3f83.

The result field is undefined for many commands and thus can have random values.
Thus we can't blindly evaluate these for all commands.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
---

diff --git a/src/nvme/fabrics.c b/src/nvme/fabrics.c
index 96ba9d4b..6738e9dc 100644
--- a/src/nvme/fabrics.c
+++ b/src/nvme/fabrics.c
@@ -1051,7 +1051,6 @@ static struct nvmf_discovery_log *nvme_discovery_log(
 	int retries = 0;
 	const char *name = nvme_ctrl_get_name(args->c);
 	uint64_t genctr, numrec;
-	__u32 result;
 	int fd = nvme_ctrl_get_fd(args->c);
 	struct nvme_get_log_args log_args = {
 		.result = args->result,
@@ -1077,21 +1076,13 @@ static struct nvmf_discovery_log *nvme_discovery_log(
 		 name, retries, args->max_retries);
 	log_args.log = log;
 	log_args.len = DISCOVERY_HEADER_LEN;
-	if (!args->result)
-		log_args.result = &result;
-retry_header:
 	if (nvme_get_log_page(fd, NVME_LOG_PAGE_PDU_SIZE, &log_args)) {
 		nvme_msg(r, LOG_INFO,
 			 "%s: discover try %d/%d failed, error %d\n",
 			 name, retries, args->max_retries, errno);
-		if (*log_args.result &&
-		    !(*log_args.result & NVME_SC_DNR) &&
-		    (++retries < args->max_retries))
-			goto retry_header;
 		goto out_free_log;
 	}
 
-	retries = 0;
 	do {
 		size_t entries_size;
 
@@ -1122,9 +1113,6 @@ retry_header:
 			nvme_msg(r, LOG_INFO,
 				 "%s: discover try %d/%d failed, error %d\n",
 				 name, retries, args->max_retries, errno);
-			if (*log_args.result &&
-			    !(*log_args.result & NVME_SC_DNR))
-				continue;
 			goto out_free_log;
 		}
 
@@ -1141,9 +1129,6 @@ retry_header:
 			nvme_msg(r, LOG_INFO,
 				 "%s: discover try %d/%d failed, error %d\n",
 				 name, retries, args->max_retries, errno);
-			if (*log_args.result &&
-			    !(*log_args.result & NVME_SC_DNR))
-				continue;
 			goto out_free_log;
 		}
 	} while (genctr != le64_to_cpu(log->genctr) &&