linux-f2fs-devel.lists.sourceforge.net archive mirror
 help / color / mirror / Atom feed
From: mchristi@redhat.com
To: linux-f2fs-devel@lists.sourceforge.net,
	linux-ext4@vger.kernel.org, konrad.wilk@oracle.com,
	drbd-dev@lists.linbit.com, philipp.reisner@linbit.com,
	lars.ellenberg@linbit.com, linux-raid@vger.kernel.org,
	dm-devel@redhat.com, linux-fsdevel@vger.kernel.org,
	linux-bcache@vger.kernel.org, linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org,
	linux-mtd@lists.infradead.org, target-devel@vger.kernel.org,
	linux-btrfs@vger.kernel.org, osd-dev@open-osd.org,
	xfs@oss.sgi.com, ocfs2-devel@oss.oracle.com
Cc: Mike Christie <mchristi@redhat.com>
Subject: [PATCH 24/42] xen: set bi_op to REQ_OP
Date: Fri, 15 Apr 2016 05:39:44 -0500	[thread overview]
Message-ID: <1460716802-2294-25-git-send-email-mchristi@redhat.com> (raw)
In-Reply-To: <1460716802-2294-1-git-send-email-mchristi@redhat.com>

From: Mike Christie <mchristi@redhat.com>

This patch has the xen block driver use bio->bi_op for REQ_OPs and rq_flag_bits
to bio->bi_rw.

Signed-off-by: Mike Christie <mchristi@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
---
 drivers/block/xen-blkback/blkback.c | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)

diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
index 79fe493..854ecca 100644
--- a/drivers/block/xen-blkback/blkback.c
+++ b/drivers/block/xen-blkback/blkback.c
@@ -501,7 +501,7 @@ static int xen_vbd_translate(struct phys_req *req, struct xen_blkif *blkif,
 	struct xen_vbd *vbd = &blkif->vbd;
 	int rc = -EACCES;
 
-	if ((operation != READ) && vbd->readonly)
+	if ((operation != REQ_OP_READ) && vbd->readonly)
 		goto out;
 
 	if (likely(req->nr_sects)) {
@@ -1014,7 +1014,7 @@ static int dispatch_discard_io(struct xen_blkif_ring *ring,
 	preq.sector_number = req->u.discard.sector_number;
 	preq.nr_sects      = req->u.discard.nr_sectors;
 
-	err = xen_vbd_translate(&preq, blkif, WRITE);
+	err = xen_vbd_translate(&preq, blkif, REQ_OP_WRITE);
 	if (err) {
 		pr_warn("access denied: DISCARD [%llu->%llu] on dev=%04x\n",
 			preq.sector_number,
@@ -1229,6 +1229,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 	struct bio **biolist = pending_req->biolist;
 	int i, nbio = 0;
 	int operation;
+	int operation_flags = 0;
 	struct blk_plug plug;
 	bool drain = false;
 	struct grant_page **pages = pending_req->segments;
@@ -1247,17 +1248,19 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 	switch (req_operation) {
 	case BLKIF_OP_READ:
 		ring->st_rd_req++;
-		operation = READ;
+		operation = REQ_OP_READ;
 		break;
 	case BLKIF_OP_WRITE:
 		ring->st_wr_req++;
-		operation = WRITE_ODIRECT;
+		operation = REQ_OP_WRITE;
+		operation_flags = WRITE_ODIRECT;
 		break;
 	case BLKIF_OP_WRITE_BARRIER:
 		drain = true;
 	case BLKIF_OP_FLUSH_DISKCACHE:
 		ring->st_f_req++;
-		operation = WRITE_FLUSH;
+		operation = REQ_OP_WRITE;
+		operation_flags = WRITE_FLUSH;
 		break;
 	default:
 		operation = 0; /* make gcc happy */
@@ -1269,7 +1272,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 	nseg = req->operation == BLKIF_OP_INDIRECT ?
 	       req->u.indirect.nr_segments : req->u.rw.nr_segments;
 
-	if (unlikely(nseg == 0 && operation != WRITE_FLUSH) ||
+	if (unlikely(nseg == 0 && operation_flags != WRITE_FLUSH) ||
 	    unlikely((req->operation != BLKIF_OP_INDIRECT) &&
 		     (nseg > BLKIF_MAX_SEGMENTS_PER_REQUEST)) ||
 	    unlikely((req->operation == BLKIF_OP_INDIRECT) &&
@@ -1310,7 +1313,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 
 	if (xen_vbd_translate(&preq, ring->blkif, operation) != 0) {
 		pr_debug("access denied: %s of [%llu,%llu] on dev=%04x\n",
-			 operation == READ ? "read" : "write",
+			 operation == REQ_OP_READ ? "read" : "write",
 			 preq.sector_number,
 			 preq.sector_number + preq.nr_sects,
 			 ring->blkif->vbd.pdevice);
@@ -1369,7 +1372,8 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 			bio->bi_private = pending_req;
 			bio->bi_end_io  = end_block_io_op;
 			bio->bi_iter.bi_sector  = preq.sector_number;
-			bio->bi_rw	= operation;
+			bio->bi_op	= operation;
+			bio->bi_rw	= operation_flags;
 		}
 
 		preq.sector_number += seg[i].nsec;
@@ -1377,7 +1381,7 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 
 	/* This will be hit if the operation was a flush or discard. */
 	if (!bio) {
-		BUG_ON(operation != WRITE_FLUSH);
+		BUG_ON(operation_flags != WRITE_FLUSH);
 
 		bio = bio_alloc(GFP_KERNEL, 0);
 		if (unlikely(bio == NULL))
@@ -1387,7 +1391,8 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 		bio->bi_bdev    = preq.bdev;
 		bio->bi_private = pending_req;
 		bio->bi_end_io  = end_block_io_op;
-		bio->bi_rw	= operation;
+		bio->bi_op	= operation;
+		bio->bi_rw	= operation_flags;
 	}
 
 	atomic_set(&pending_req->pendcnt, nbio);
@@ -1399,9 +1404,9 @@ static int dispatch_rw_block_io(struct xen_blkif_ring *ring,
 	/* Let the I/Os go.. */
 	blk_finish_plug(&plug);
 
-	if (operation == READ)
+	if (operation == REQ_OP_READ)
 		ring->st_rd_sect += preq.nr_sects;
-	else if (operation & WRITE)
+	else if (operation == REQ_OP_WRITE)
 		ring->st_wr_sect += preq.nr_sects;
 
 	return 0;
-- 
2.7.2

  parent reply	other threads:[~2016-04-15 10:39 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-15 10:39 [PATCH 00/42] v6: separate operations from flags in the bio/request structs mchristi
2016-04-15 10:39 ` [PATCH 01/42] block/fs/drivers: remove rw argument from submit_bio mchristi
2016-04-15 10:39 ` [PATCH 02/42] block: add REQ_OP definitions and bi_op/op fields mchristi
2016-04-15 10:39 ` [PATCH 03/42] block, fs, mm, drivers: set bi_op to REQ_OP mchristi
2016-04-15 10:39 ` [PATCH 04/42] fs: have submit_bh users pass in op and flags separately mchristi
2016-04-18 16:30   ` [dm-devel] " Ryusuke Konishi
2016-04-15 10:39 ` [PATCH 05/42] fs: have ll_rw_block " mchristi
2016-04-15 10:39 ` [PATCH 06/42] direct-io: set bi_op to REQ_OP mchristi
2016-04-15 10:39 ` [PATCH 07/42] btrfs: have submit_one_bio users setup bio bi_op mchristi
2016-04-15 10:39 ` [PATCH 08/42] btrfs: set bi_op tp REQ_OP mchristi
2016-04-15 10:39 ` [PATCH 09/42] btrfs: update __btrfs_map_block for bi_op transition mchristi
2016-04-15 10:39 ` [PATCH 10/42] btrfs: use bio fields for op and flags mchristi
2016-04-15 10:39 ` [PATCH 11/42] f2fs: set bi_op to REQ_OP mchristi
2016-04-15 10:39 ` [PATCH 12/42] gfs2: " mchristi
2016-04-15 10:39 ` [PATCH 13/42] xfs: " mchristi
2016-04-15 10:39 ` [PATCH 14/42] hfsplus: " mchristi
2016-04-15 10:39 ` [PATCH 15/42] mpage: " mchristi
2016-04-15 10:39 ` [PATCH 16/42] nilfs: " mchristi
2016-04-15 10:39 ` [PATCH 17/42] ocfs2: " mchristi
2016-04-15 10:39 ` [PATCH 18/42] pm: " mchristi
2016-04-15 10:39 ` [PATCH 19/42] dm: " mchristi
2016-04-15 10:39 ` [PATCH 20/42] dm: pass dm stats data dir instead of bi_rw mchristi
2016-04-15 10:39 ` [PATCH 21/42] bcache: set bi_op to REQ_OP mchristi
2016-04-15 10:39 ` [PATCH 22/42] drbd: " mchristi
2016-04-15 10:39 ` [PATCH 23/42] md/raid: " mchristi
2016-04-23 23:26   ` [dm-devel] " Shaun Tancheff
2016-04-15 10:39 ` mchristi [this message]
2016-04-15 10:39 ` [PATCH 25/42] target: " mchristi
2016-04-15 10:39 ` [PATCH 26/42] block: copy bio op to request op mchristi
2016-04-15 10:39 ` [PATCH 27/42] block: prepare request creation/destruction code to use REQ_OPs mchristi
2016-04-15 10:39 ` [PATCH 28/42] block: prepare mq request creation " mchristi
2016-04-15 10:39 ` [PATCH 29/42] block: prepare elevator " mchristi
2016-04-15 10:39 ` [PATCH 30/42] blkg_rwstat: separate op from flags mchristi
2016-04-15 10:39 ` [PATCH 31/42] block: convert merge/insert code to check for REQ_OPs mchristi
2016-04-15 10:39 ` [PATCH 32/42] block: convert is_sync helpers to use REQ_OPs mchristi
2016-04-15 10:39 ` [PATCH 33/42] block: convert rq_data_dir helper " mchristi
2016-04-15 10:39 ` [PATCH 34/42] drivers: set request op to REQ_OP mchristi
2016-04-15 10:39 ` [PATCH 35/42] blktrace: get op from req->op/bio->bi_op mchristi
2016-04-15 10:39 ` [PATCH 36/42] ide cd: do not set REQ_WRITE on requests mchristi
2016-04-15 10:39 ` [PATCH 37/42] block, fs, drivers: do use bi_rw/cmd_flags for REQ_OPs mchristi
2016-04-15 10:39 ` [PATCH 38/42] block, fs: remove old REQ definitions mchristi
2016-04-15 10:39 ` [PATCH 39/42] block: shrink bio/request fields mchristi
2016-04-15 10:40 ` [PATCH 40/42] block, drivers: add REQ_OP_FLUSH operation mchristi
2016-04-15 10:40 ` [PATCH 41/42] block: do not use REQ_FLUSH for tracking flush support mchristi
2016-04-15 10:50   ` Juergen Gross
2016-04-15 18:58     ` Mike Christie
2016-04-15 10:40 ` [PATCH 42/42] block, drivers, fs: rename REQ_FLUSH to REQ_PREFLUSH mchristi
  -- strict thread matches above, loose matches on Subject: below --
2016-04-15 19:15 [PATCH 00/42] v7: separate operations from flags in the bio/request structs mchristi
2016-04-15 19:15 ` [PATCH 24/42] xen: set bi_op to REQ_OP mchristi
2016-04-13 19:35 [PATCH 00/42] v5: separate operations from flags in the bio/request structs mchristi
2016-04-13 19:36 ` [PATCH 24/42] xen: set bi_op to REQ_OP mchristi

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=1460716802-2294-25-git-send-email-mchristi@redhat.com \
    --to=mchristi@redhat.com \
    --cc=dm-devel@redhat.com \
    --cc=drbd-dev@lists.linbit.com \
    --cc=konrad.wilk@oracle.com \
    --cc=lars.ellenberg@linbit.com \
    --cc=linux-bcache@vger.kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=linux-ext4@vger.kernel.org \
    --cc=linux-f2fs-devel@lists.sourceforge.net \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-raid@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=ocfs2-devel@oss.oracle.com \
    --cc=osd-dev@open-osd.org \
    --cc=philipp.reisner@linbit.com \
    --cc=target-devel@vger.kernel.org \
    --cc=xfs@oss.sgi.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;
as well as URLs for NNTP newsgroup(s).