public inbox for linux-um@lists.infradead.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: Jens Axboe <axboe@kernel.dk>,
	"Martin K. Petersen" <martin.petersen@oracle.com>
Cc: "Richard Weinberger" <richard@nod.at>,
	"Anton Ivanov" <anton.ivanov@cambridgegreys.com>,
	"Johannes Berg" <johannes@sipsolutions.net>,
	"Josef Bacik" <josef@toxicpanda.com>,
	"Ilya Dryomov" <idryomov@gmail.com>,
	"Dongsheng Yang" <dongsheng.yang@easystack.cn>,
	"Roger Pau Monné" <roger.pau@citrix.com>,
	linux-um@lists.infradead.org, linux-block@vger.kernel.org,
	nbd@other.debian.org, ceph-devel@vger.kernel.org,
	xen-devel@lists.xenproject.org, linux-scsi@vger.kernel.org
Subject: [PATCH 04/12] sd: add a sd_disable_discard helper
Date: Wed, 29 May 2024 07:04:06 +0200	[thread overview]
Message-ID: <20240529050507.1392041-5-hch@lst.de> (raw)
In-Reply-To: <20240529050507.1392041-1-hch@lst.de>

Add helper to disable discard when it is not supported and use it
instead of sd_config_discard in the I/O completion handler.  This avoids
touching more fields than required in the I/O completion handler and
prepares for converting sd to use the atomic queue limits API.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 drivers/scsi/sd.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 15d0035048d902..a8838381823254 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -821,6 +821,12 @@ static unsigned char sd_setup_protect_cmnd(struct scsi_cmnd *scmd,
 	return protect;
 }
 
+static void sd_disable_discard(struct scsi_disk *sdkp)
+{
+	sdkp->provisioning_mode = SD_LBP_DISABLE;
+	blk_queue_max_discard_sectors(sdkp->disk->queue, 0);
+}
+
 static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode)
 {
 	struct request_queue *q = sdkp->disk->queue;
@@ -2245,12 +2251,12 @@ static int sd_done(struct scsi_cmnd *SCpnt)
 		case 0x24:	/* INVALID FIELD IN CDB */
 			switch (SCpnt->cmnd[0]) {
 			case UNMAP:
-				sd_config_discard(sdkp, SD_LBP_DISABLE);
+				sd_disable_discard(sdkp);
 				break;
 			case WRITE_SAME_16:
 			case WRITE_SAME:
 				if (SCpnt->cmnd[1] & 8) { /* UNMAP */
-					sd_config_discard(sdkp, SD_LBP_DISABLE);
+					sd_disable_discard(sdkp);
 				} else {
 					sdkp->device->no_write_same = 1;
 					sd_config_write_same(sdkp);
-- 
2.43.0



  parent reply	other threads:[~2024-05-29  5:05 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-29  5:04 convert the SCSI ULDs to the atomic queue limits API Christoph Hellwig
2024-05-29  5:04 ` [PATCH 01/12] ubd: untagle discard vs write zeroes not support handling Christoph Hellwig
2024-05-29  8:00   ` Damien Le Moal
2024-05-30 19:44   ` Bart Van Assche
2024-05-29  5:04 ` [PATCH 02/12] block: take io_opt and io_min into account for max_sectors Christoph Hellwig
2024-05-29  8:05   ` Damien Le Moal
2024-05-30 19:47   ` Bart Van Assche
2024-05-30 19:48   ` Ilya Dryomov
2024-05-31  5:54     ` Christoph Hellwig
2024-05-31  6:48       ` Ilya Dryomov
2024-05-31  6:56         ` Christoph Hellwig
2024-05-29  5:04 ` [PATCH 03/12] sd: simplify the ZBC case in provisioning_mode_store Christoph Hellwig
2024-05-29  8:07   ` Damien Le Moal
2024-05-30 19:48   ` Bart Van Assche
2024-05-29  5:04 ` Christoph Hellwig [this message]
2024-05-29  8:10   ` [PATCH 04/12] sd: add a sd_disable_discard helper Damien Le Moal
2024-05-30 19:50   ` Bart Van Assche
2024-05-29  5:04 ` [PATCH 05/12] sd: add a sd_disable_write_same helper Christoph Hellwig
2024-05-29  8:12   ` Damien Le Moal
2024-05-30 19:51   ` Bart Van Assche
2024-05-29  5:04 ` [PATCH 06/12] sd: simplify the disable case in sd_config_discard Christoph Hellwig
2024-05-29  8:13   ` Damien Le Moal
2024-05-30 20:02   ` Bart Van Assche
2024-05-29  5:04 ` [PATCH 07/12] sd: factor out a sd_discard_mode helper Christoph Hellwig
2024-05-29  8:14   ` Damien Le Moal
2024-05-29 21:11   ` Bart Van Assche
2024-05-29  5:04 ` [PATCH 08/12] sd: cleanup zoned queue limits initialization Christoph Hellwig
2024-05-29  8:18   ` Damien Le Moal
2024-05-30 20:07   ` Bart Van Assche
2024-05-29  5:04 ` [PATCH 09/12] sd: convert to the atomic queue limits API Christoph Hellwig
2024-05-29  8:23   ` Damien Le Moal
2024-05-30  9:16   ` John Garry
2024-05-31  5:48     ` Christoph Hellwig
2024-05-29  5:04 ` [PATCH 10/12] sr: " Christoph Hellwig
2024-05-29  8:25   ` Damien Le Moal
2024-05-29  5:04 ` [PATCH 11/12] block: remove unused " Christoph Hellwig
2024-05-29  8:28   ` Damien Le Moal
2024-05-30 20:08   ` Bart Van Assche
2024-05-31  9:14   ` John Garry
2024-05-29  5:04 ` [PATCH 12/12] block: add special APIs for run-time disabling of discard and friends Christoph Hellwig
2024-05-29  8:30   ` Damien Le Moal
2024-05-30 20:09   ` Bart Van Assche
2024-05-31  9:13   ` John Garry

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=20240529050507.1392041-5-hch@lst.de \
    --to=hch@lst.de \
    --cc=anton.ivanov@cambridgegreys.com \
    --cc=axboe@kernel.dk \
    --cc=ceph-devel@vger.kernel.org \
    --cc=dongsheng.yang@easystack.cn \
    --cc=idryomov@gmail.com \
    --cc=johannes@sipsolutions.net \
    --cc=josef@toxicpanda.com \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=linux-um@lists.infradead.org \
    --cc=martin.petersen@oracle.com \
    --cc=nbd@other.debian.org \
    --cc=richard@nod.at \
    --cc=roger.pau@citrix.com \
    --cc=xen-devel@lists.xenproject.org \
    /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