All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
To: linux-block@vger.kernel.org
Cc: axboe@kernel.dk, hch@lst.de,
	Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Subject: [PATCH 8/8] null_blk: adjusts the code with latest changes
Date: Thu, 11 Jul 2019 10:53:28 -0700	[thread overview]
Message-ID: <20190711175328.16430-9-chaitanya.kulkarni@wdc.com> (raw)
In-Reply-To: <20190711175328.16430-1-chaitanya.kulkarni@wdc.com>

Now that we have support for more than on special operations
REQ_OP_DISCARD and REQ_OP_WRITE_ZEROES create a helper to isolate the
code common code.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
---
 drivers/block/null_blk_main.c | 41 +++++++++++++++++------------------
 1 file changed, 20 insertions(+), 21 deletions(-)

diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c
index c734ddaa697f..f59a05bcf56f 100644
--- a/drivers/block/null_blk_main.c
+++ b/drivers/block/null_blk_main.c
@@ -1107,28 +1107,36 @@ static int null_transfer(struct nullb *nullb, struct page *page,
 	return err;
 }
 
+static inline bool null_handle_special_op(struct nullb *nullb, sector_t sector,
+					  unsigned int bytes, enum req_opf op)
+{
+	switch (op) {
+	case REQ_OP_DISCARD:
+		null_handle_discard(nullb, sector, bytes);
+		return true;
+	case REQ_OP_WRITE_ZEROES:
+		null_handle_write_zeroes(nullb, sector, bytes);
+		return true;
+	default:
+		break;
+	}
+	return false;
+}
+
 static int null_handle_rq(struct nullb_cmd *cmd)
 {
 	struct request *rq = cmd->rq;
 	struct nullb *nullb = cmd->nq->dev->nullb;
 	int err;
-	unsigned int len;
+	unsigned int len = blk_rq_bytes(rq);
 	sector_t sector;
 	struct req_iterator iter;
 	struct bio_vec bvec;
 
 	sector = blk_rq_pos(rq);
 
-	switch (req_op(rq)) {
-	case REQ_OP_DISCARD:
-		null_handle_discard(nullb, sector, blk_rq_bytes(rq));
+	if (null_handle_special_op(nullb, sector, len, req_op(rq)))
 		return 0;
-	case REQ_OP_WRITE_ZEROES:
-		null_handle_write_zeroes(nullb, sector, blk_rq_bytes(rq));
-		return 0;
-	default:
-		break;
-	}
 
 	spin_lock_irq(&nullb->lock);
 	rq_for_each_segment(bvec, rq, iter) {
@@ -1149,27 +1157,18 @@ static int null_handle_rq(struct nullb_cmd *cmd)
 
 static int null_handle_bio(struct nullb_cmd *cmd)
 {
-	unsigned int blk_bio_bytes = bio_sectors(cmd->bio) << SECTOR_SHIFT;
+	unsigned int len = bio_sectors(cmd->bio) << SECTOR_SHIFT;
 	struct bio *bio = cmd->bio;
 	struct nullb *nullb = cmd->nq->dev->nullb;
 	int err;
-	unsigned int len;
 	sector_t sector;
 	struct bio_vec bvec;
 	struct bvec_iter iter;
 
 	sector = bio->bi_iter.bi_sector;
 
-	switch (bio_op(bio)) {
-	case REQ_OP_DISCARD:
-		null_handle_discard(nullb, sector, blk_bio_bytes);
+	if (null_handle_special_op(nullb, sector, len, bio_op(bio)))
 		return 0;
-	case REQ_OP_WRITE_ZEROES:
-		null_handle_write_zeroes(nullb, sector, blk_bio_bytes);
-		return 0;
-	default:
-		break;
-	}
 
 	spin_lock_irq(&nullb->lock);
 	bio_for_each_segment(bvec, bio, iter) {
-- 
2.17.0


      parent reply	other threads:[~2019-07-11 17:54 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-07-11 17:53 [PATCH 0/8] null_blk: add missing write-zeroes and discard support Chaitanya Kulkarni
2019-07-11 17:53 ` [PATCH 1/8] null_blk: add module parameter for REQ_OP_DISCARD Chaitanya Kulkarni
2019-07-28  6:04   ` Minwoo Im
2019-07-30  4:48     ` Chaitanya Kulkarni
2019-07-11 17:53 ` [PATCH 2/8] null_blk: add REQ_OP_WRITE_ZEROES config property Chaitanya Kulkarni
2019-07-28  6:17   ` Minwoo Im
2019-07-11 17:53 ` [PATCH 3/8] null_blk: add support for write-zeroes Chaitanya Kulkarni
2019-07-28  6:08   ` Minwoo Im
2019-07-11 17:53 ` [PATCH 4/8] null_blk: allow memory-backed write-zeroes-req Chaitanya Kulkarni
2019-07-28  6:11   ` Minwoo Im
2019-07-11 17:53 ` [PATCH 5/8] null_blk: code cleaup Chaitanya Kulkarni
2019-07-28  6:12   ` Minwoo Im
2019-07-11 17:53 ` [PATCH 6/8] null_blk: allow memory-backed write-zeroes-bio Chaitanya Kulkarni
2019-07-28  6:18   ` Minwoo Im
2019-07-11 17:53 ` [PATCH 7/8] null_blk: add support for configfs write_zeroes Chaitanya Kulkarni
2019-07-11 17:53 ` Chaitanya Kulkarni [this message]

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=20190711175328.16430-9-chaitanya.kulkarni@wdc.com \
    --to=chaitanya.kulkarni@wdc.com \
    --cc=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=linux-block@vger.kernel.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 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.