[PATCH 0/3] Refactor and fix about NVMe status code

Weiwen Hu huweiwen at linux.alibaba.com
Wed May 29 05:22:57 PDT 2024


We discovered that the PR ioctl status code is not correct for cloud disks
in Alibaba Cloud.  It turns out that we have MORE bit set in the status,
but nvme_sc_to_pr_err() forgot to mask it.

Besides fixing this (PATCH 1), I also (PATCH 2 and 3):
- replaced many magic numbers;
- replaced NVME_SC_(DNR|MORE|CRD) => NVME_STATUS_$1 .
These should clarify the code and make it easier to read, thus reducing the
chance of introducing bugs like this one in the future. The patches should
not affect the behavior of the code, and are independent to the fix.

Weiwen Hu (3):
  nvme: fix nvme_pr_* status code parsing
  nvme: fix status magic numbers
  nvme: rename CDR/MORE/DNR to NVME_STATUS_*

 drivers/nvme/host/constants.c          |  2 +-
 drivers/nvme/host/core.c               | 40 +++++++++++-----------
 drivers/nvme/host/fabrics.c            | 10 +++---
 drivers/nvme/host/fault_inject.c       |  2 +-
 drivers/nvme/host/fc.c                 |  6 ++--
 drivers/nvme/host/multipath.c          |  2 +-
 drivers/nvme/host/nvme.h               |  6 ++--
 drivers/nvme/host/pr.c                 | 10 +++---
 drivers/nvme/target/admin-cmd.c        | 24 +++++++-------
 drivers/nvme/target/core.c             | 46 +++++++++++++-------------
 drivers/nvme/target/discovery.c        | 14 ++++----
 drivers/nvme/target/fabrics-cmd-auth.c | 16 ++++-----
 drivers/nvme/target/fabrics-cmd.c      | 36 ++++++++++----------
 drivers/nvme/target/io-cmd-bdev.c      | 12 +++----
 drivers/nvme/target/passthru.c         | 10 +++---
 drivers/nvme/target/rdma.c             | 10 +++---
 drivers/nvme/target/tcp.c              |  4 +--
 drivers/nvme/target/zns.c              | 30 ++++++++---------
 include/linux/nvme.h                   | 16 +++++++--
 19 files changed, 153 insertions(+), 143 deletions(-)

-- 
2.45.1




More information about the Linux-nvme mailing list