[PATCH v5 0/6] nvme-fabrics: short-circuit connect retries

From: Daniel Wagner
Date: Tue Apr 09 2024 - 05:35:28 EST


The first patch returns only kernel error codes now and avoids overwriting error
codes later. Thje newly introduced helper for deciding if a reconnect should be
attempted is the only place where we have the logic (and documentation).

On the target side I've separate the nvme status from the dhchap status handling
which made it a bit clearer. I was tempted to refactor the code in
nvmet_execute_auth_send to avoid hitting the 80 chars limit but didn't came up
with something nice yet. So let's keep this change at a minimum before any
refactoring attempts.

I've tested with blktests and also an real hardware for nvme-fc.

changes:
v5:
- nvme: do not mix kernel error code with nvme status
- nvmet: separate nvme status from dhchap status
- https://lore.kernel.org/all/20240404154500.2101-1-dwagner@xxxxxxx/

v4:
- rebased
- added 'nvme: fixes for authentication errors' series
https://lore.kernel.org/linux-nvme/20240301112823.132570-1-hare@xxxxxxxxxx/

v3:
- added my SOB tag
- fixed indention
- https://lore.kernel.org/linux-nvme/20240305080005.3638-1-dwagner@xxxxxxx/

v2:
- refresh/rebase on current head
- extended blktests (nvme/045) to cover this case
(see separate post)
- https://lore.kernel.org/linux-nvme/20240304161006.19328-1-dwagner@xxxxxxx/

v1:
- initial version
- https://lore.kernel.org/linux-nvme/20210623143250.82445-1-hare@xxxxxxx/


Daniel Wagner (1):
nvme-fc: use nvme_ctrl_reconnect to decide reconnect attempts

Hannes Reinecke (5):
nvme: authentication error are always non-retryable
nvmet: lock config semaphore when accessing DH-HMAC-CHAP key
nvme-tcp: short-circuit reconnect retries
nvme-rdma: short-circuit reconnect retries
nvmet: return DHCHAP status codes from nvmet_setup_auth()

drivers/nvme/host/core.c | 6 ++--
drivers/nvme/host/fabrics.c | 25 ++++++-------
drivers/nvme/host/fc.c | 4 +--
drivers/nvme/host/nvme.h | 26 +++++++++++++-
drivers/nvme/host/rdma.c | 22 ++++++++----
drivers/nvme/host/tcp.c | 23 +++++++-----
drivers/nvme/target/auth.c | 22 ++++++------
drivers/nvme/target/configfs.c | 22 +++++++++---
drivers/nvme/target/fabrics-cmd-auth.c | 49 +++++++++++++-------------
drivers/nvme/target/fabrics-cmd.c | 11 +++---
drivers/nvme/target/nvmet.h | 8 ++---
11 files changed, 134 insertions(+), 84 deletions(-)

--
2.44.0