Linux-NVME Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Weiwen Hu <huweiwen@linux.alibaba.com>
To: linux-nvme@lists.infradead.org
Cc: Mike Christie <michael.christie@oracle.com>,
	Christoph Hellwig <hch@lst.de>,
	Weiwen Hu <huweiwen@linux.alibaba.com>
Subject: [PATCH 0/3] Refactor and fix about NVMe status code
Date: Wed, 29 May 2024 20:22:57 +0800	[thread overview]
Message-ID: <20240529122300.92377-1-huweiwen@linux.alibaba.com> (raw)

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



             reply	other threads:[~2024-05-29 12:24 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-29 12:22 Weiwen Hu [this message]
2024-05-29 12:22 ` [PATCH 1/3] nvme: fix nvme_pr_* status code parsing Weiwen Hu
2024-05-29 19:18   ` Chaitanya Kulkarni
2024-05-29 21:41     ` Keith Busch
2024-05-30  6:34       ` Weiwen Hu
2024-05-29 12:22 ` [PATCH 2/3] nvme: fix status magic numbers Weiwen Hu
2024-05-29 12:23 ` [PATCH 3/3] nvme: rename CDR/MORE/DNR to NVME_STATUS_* Weiwen Hu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240529122300.92377-1-huweiwen@linux.alibaba.com \
    --to=huweiwen@linux.alibaba.com \
    --cc=hch@lst.de \
    --cc=linux-nvme@lists.infradead.org \
    --cc=michael.christie@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox