All of lore.kernel.org
 help / color / mirror / Atom feed
From: Damien Le Moal <damien.lemoal@wdc.com>
To: linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
	linux-scsi@vger.kernel.org,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	dm-devel@redhat.com, Mike Snitzer <snitzer@redhat.com>
Cc: Ajay Joshi <ajay.joshi@wdc.com>,
	Matias Bjorling <matias.bjorling@wdc.com>,
	Hans Holmberg <Hans.Holmberg@wdc.com>,
	Dmitry Fomichev <dmitry.fomichev@wdc.com>,
	Keith Busch <kbusch@kernel.org>
Subject: [PATCH 3/8] scsi: sd_zbc: Fix sd_zbc_complete()
Date: Sun, 27 Oct 2019 23:05:44 +0900	[thread overview]
Message-ID: <20191027140549.26272-4-damien.lemoal@wdc.com> (raw)
In-Reply-To: <20191027140549.26272-1-damien.lemoal@wdc.com>

The ILLEGAL REQUEST/INVALID FIELD IN CDB error generated by an attempt
to reset a conventional zone does not apply to the reset write pointer
command with the ALL bit set, that is, to REQ_OP_ZONE_RESET_ALL
requests. Fix sd_zbc_complete() to be quiet only in the case of
REQ_OP_ZONE_RESET, excluding REQ_OP_ZONE_RESET_ALL.

Since REQ_OP_ZONE_RESET is the only request handled by
sd_zbc_complete(), also simplify the code using a simple if statement.

Fixes: d81e9d494354 ("scsi: implement REQ_OP_ZONE_RESET_ALL")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 drivers/scsi/sd_zbc.c | 29 ++++++++++-------------------
 1 file changed, 10 insertions(+), 19 deletions(-)

diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
index de4019dc0f0b..1efc69e194f8 100644
--- a/drivers/scsi/sd_zbc.c
+++ b/drivers/scsi/sd_zbc.c
@@ -263,25 +263,16 @@ void sd_zbc_complete(struct scsi_cmnd *cmd, unsigned int good_bytes,
 	int result = cmd->result;
 	struct request *rq = cmd->request;
 
-	switch (req_op(rq)) {
-	case REQ_OP_ZONE_RESET:
-	case REQ_OP_ZONE_RESET_ALL:
-
-		if (result &&
-		    sshdr->sense_key == ILLEGAL_REQUEST &&
-		    sshdr->asc == 0x24)
-			/*
-			 * INVALID FIELD IN CDB error: reset of a conventional
-			 * zone was attempted. Nothing to worry about, so be
-			 * quiet about the error.
-			 */
-			rq->rq_flags |= RQF_QUIET;
-		break;
-
-	case REQ_OP_WRITE:
-	case REQ_OP_WRITE_ZEROES:
-	case REQ_OP_WRITE_SAME:
-		break;
+	if (req_op(rq) == REQ_OP_ZONE_RESET &&
+	    result &&
+	    sshdr->sense_key == ILLEGAL_REQUEST &&
+	    sshdr->asc == 0x24) {
+		/*
+		 * INVALID FIELD IN CDB error: reset of a conventional
+		 * zone was attempted. Nothing to worry about, so be
+		 * quiet about the error.
+		 */
+		rq->rq_flags |= RQF_QUIET;
 	}
 }
 
-- 
2.21.0


WARNING: multiple messages have this Message-ID (diff)
From: Damien Le Moal <damien.lemoal@wdc.com>
To: linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
	linux-scsi@vger.kernel.org,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	dm-devel@redhat.com, Mike Snitzer <snitzer@redhat.com>
Cc: Dmitry Fomichev <dmitry.fomichev@wdc.com>,
	Keith Busch <kbusch@kernel.org>,
	Hans Holmberg <Hans.Holmberg@wdc.com>,
	Ajay Joshi <ajay.joshi@wdc.com>,
	Matias Bjorling <matias.bjorling@wdc.com>
Subject: [PATCH 3/8] scsi: sd_zbc: Fix sd_zbc_complete()
Date: Sun, 27 Oct 2019 23:05:44 +0900	[thread overview]
Message-ID: <20191027140549.26272-4-damien.lemoal@wdc.com> (raw)
In-Reply-To: <20191027140549.26272-1-damien.lemoal@wdc.com>

The ILLEGAL REQUEST/INVALID FIELD IN CDB error generated by an attempt
to reset a conventional zone does not apply to the reset write pointer
command with the ALL bit set, that is, to REQ_OP_ZONE_RESET_ALL
requests. Fix sd_zbc_complete() to be quiet only in the case of
REQ_OP_ZONE_RESET, excluding REQ_OP_ZONE_RESET_ALL.

Since REQ_OP_ZONE_RESET is the only request handled by
sd_zbc_complete(), also simplify the code using a simple if statement.

Fixes: d81e9d494354 ("scsi: implement REQ_OP_ZONE_RESET_ALL")
Cc: stable@vger.kernel.org
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
---
 drivers/scsi/sd_zbc.c | 29 ++++++++++-------------------
 1 file changed, 10 insertions(+), 19 deletions(-)

diff --git a/drivers/scsi/sd_zbc.c b/drivers/scsi/sd_zbc.c
index de4019dc0f0b..1efc69e194f8 100644
--- a/drivers/scsi/sd_zbc.c
+++ b/drivers/scsi/sd_zbc.c
@@ -263,25 +263,16 @@ void sd_zbc_complete(struct scsi_cmnd *cmd, unsigned int good_bytes,
 	int result = cmd->result;
 	struct request *rq = cmd->request;
 
-	switch (req_op(rq)) {
-	case REQ_OP_ZONE_RESET:
-	case REQ_OP_ZONE_RESET_ALL:
-
-		if (result &&
-		    sshdr->sense_key == ILLEGAL_REQUEST &&
-		    sshdr->asc == 0x24)
-			/*
-			 * INVALID FIELD IN CDB error: reset of a conventional
-			 * zone was attempted. Nothing to worry about, so be
-			 * quiet about the error.
-			 */
-			rq->rq_flags |= RQF_QUIET;
-		break;
-
-	case REQ_OP_WRITE:
-	case REQ_OP_WRITE_ZEROES:
-	case REQ_OP_WRITE_SAME:
-		break;
+	if (req_op(rq) == REQ_OP_ZONE_RESET &&
+	    result &&
+	    sshdr->sense_key == ILLEGAL_REQUEST &&
+	    sshdr->asc == 0x24) {
+		/*
+		 * INVALID FIELD IN CDB error: reset of a conventional
+		 * zone was attempted. Nothing to worry about, so be
+		 * quiet about the error.
+		 */
+		rq->rq_flags |= RQF_QUIET;
 	}
 }
 
-- 
2.21.0

  parent reply	other threads:[~2019-10-27 14:05 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-27 14:05 [PATCH 0/8] Zone management commands support Damien Le Moal
2019-10-27 14:05 ` Damien Le Moal
2019-10-27 14:05 ` [PATCH 1/8] block: Remove REQ_OP_ZONE_RESET plugging Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-10-28  7:50   ` Chaitanya Kulkarni
2019-10-28  7:50     ` Chaitanya Kulkarni
2019-10-29 12:13   ` Javier González
2019-10-29 12:13     ` Javier González
2019-11-07  9:50   ` Christoph Hellwig
2019-11-07  9:50     ` Christoph Hellwig
2019-10-27 14:05 ` [PATCH 2/8] block: Simplify REQ_OP_ZONE_RESET_ALL handling Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-10-28  7:49   ` Chaitanya Kulkarni
2019-10-28  7:49     ` Chaitanya Kulkarni
2019-10-28  7:54     ` Damien Le Moal
2019-10-28  7:54       ` Damien Le Moal
2019-10-28  8:37       ` Chaitanya Kulkarni
2019-10-28  8:37         ` Chaitanya Kulkarni
2019-11-07  9:51   ` Christoph Hellwig
2019-11-07  9:51     ` Christoph Hellwig
2019-10-27 14:05 ` Damien Le Moal [this message]
2019-10-27 14:05   ` [PATCH 3/8] scsi: sd_zbc: Fix sd_zbc_complete() Damien Le Moal
2019-11-02  0:42   ` Martin K. Petersen
2019-11-02  0:42     ` Martin K. Petersen
2019-10-27 14:05 ` [PATCH 4/8] block: add zone open, close and finish operations Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-10-29 12:23   ` Javier González
2019-10-29 12:23     ` Javier González
2019-11-07  9:52   ` Christoph Hellwig
2019-11-07  9:52     ` Christoph Hellwig
2019-10-27 14:05 ` [PATCH 5/8] block: add zone open, close and finish ioctl support Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-10-29 12:23   ` Javier González
2019-10-29 12:23     ` Javier González
2019-11-07  9:52   ` Christoph Hellwig
2019-11-07  9:52     ` Christoph Hellwig
2019-10-27 14:05 ` [PATCH 6/8] scsi: sd_zbc: add zone open, close, and finish support Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-11-02  0:43   ` Martin K. Petersen
2019-11-02  0:43     ` Martin K. Petersen
2019-11-07  9:53   ` Christoph Hellwig
2019-11-07  9:53     ` Christoph Hellwig
2019-10-27 14:05 ` [PATCH 7/8] dm: add zone open, close " Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-11-05 16:34   ` Mike Snitzer
2019-11-05 16:34     ` Mike Snitzer
2019-11-07  9:53   ` Christoph Hellwig
2019-11-07  9:53     ` Christoph Hellwig
2019-10-27 14:05 ` [PATCH 8/8] null_blk: add zone open, close, " Damien Le Moal
2019-10-27 14:05   ` Damien Le Moal
2019-11-07  9:54   ` Christoph Hellwig
2019-11-07  9:54     ` Christoph Hellwig
2019-11-02  3:01 ` [PATCH 0/8] Zone management commands support Jens Axboe
2019-11-02  3:01   ` Jens Axboe
2019-11-03 23:41   ` Damien Le Moal
2019-11-03 23:41     ` Damien Le Moal
2019-11-05  4:51     ` Martin K. Petersen
2019-11-05  4:51       ` Martin K. Petersen
2019-11-05  5:08       ` Damien Le Moal
2019-11-05  5:08         ` Damien Le Moal
2019-11-07 13:40 ` Jens Axboe
2019-11-07 13:40   ` Jens Axboe

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=20191027140549.26272-4-damien.lemoal@wdc.com \
    --to=damien.lemoal@wdc.com \
    --cc=Hans.Holmberg@wdc.com \
    --cc=ajay.joshi@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=dm-devel@redhat.com \
    --cc=dmitry.fomichev@wdc.com \
    --cc=kbusch@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=matias.bjorling@wdc.com \
    --cc=snitzer@redhat.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.