xfs
[Top] [All Lists]

[PATCH 06/45] dm: use op_is_write instead of checking for REQ_WRITE

To: linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, konrad.wilk@xxxxxxxxxx, drbd-dev@xxxxxxxxxxxxxxxx, philipp.reisner@xxxxxxxxxx, lars.ellenberg@xxxxxxxxxx, linux-raid@xxxxxxxxxxxxxxx, dm-devel@xxxxxxxxxx, linux-fsdevel@xxxxxxxxxxxxxxx, linux-bcache@xxxxxxxxxxxxxxx, linux-block@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-scsi@xxxxxxxxxxxxxxx, linux-mtd@xxxxxxxxxxxxxxxxxxx, target-devel@xxxxxxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx, osd-dev@xxxxxxxxxxxx, xfs@xxxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx
Subject: [PATCH 06/45] dm: use op_is_write instead of checking for REQ_WRITE
From: mchristi@xxxxxxxxxx
Date: Sun, 5 Jun 2016 14:31:46 -0500
Cc: Mike Christie <mchristi@xxxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
In-reply-to: <1465155145-10812-1-git-send-email-mchristi@xxxxxxxxxx>
References: <1465155145-10812-1-git-send-email-mchristi@xxxxxxxxxx>
From: Mike Christie <mchristi@xxxxxxxxxx>

We currently set REQ_WRITE/WRITE for all non READ IOs
like discard, flush, writesame, etc. In the next patches where we
no longer set up the op as a bitmap, we will not be able to
detect a operation direction like writesame by testing if REQ_WRITE is
set.

This has dm use the op_is_write helper which will do the right
thing.

Signed-off-by: Mike Christie <mchristi@xxxxxxxxxx>
---
 drivers/md/dm-io.c     | 4 ++--
 drivers/md/dm-kcopyd.c | 6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c
index 50f17e3..26e9a85 100644
--- a/drivers/md/dm-io.c
+++ b/drivers/md/dm-io.c
@@ -409,7 +409,7 @@ static int sync_io(struct dm_io_client *client, unsigned 
int num_regions,
        struct io *io;
        struct sync_io sio;
 
-       if (num_regions > 1 && (rw & RW_MASK) != WRITE) {
+       if (num_regions > 1 && !op_is_write(rw)) {
                WARN_ON(1);
                return -EIO;
        }
@@ -442,7 +442,7 @@ static int async_io(struct dm_io_client *client, unsigned 
int num_regions,
 {
        struct io *io;
 
-       if (num_regions > 1 && (rw & RW_MASK) != WRITE) {
+       if (num_regions > 1 && !op_is_write(rw)) {
                WARN_ON(1);
                fn(1, context);
                return -EIO;
diff --git a/drivers/md/dm-kcopyd.c b/drivers/md/dm-kcopyd.c
index 1452ed9..9f390e4 100644
--- a/drivers/md/dm-kcopyd.c
+++ b/drivers/md/dm-kcopyd.c
@@ -465,7 +465,7 @@ static void complete_io(unsigned long error, void *context)
        io_job_finish(kc->throttle);
 
        if (error) {
-               if (job->rw & WRITE)
+               if (op_is_write(job->rw))
                        job->write_err |= error;
                else
                        job->read_err = 1;
@@ -477,7 +477,7 @@ static void complete_io(unsigned long error, void *context)
                }
        }
 
-       if (job->rw & WRITE)
+       if (op_is_write(job->rw))
                push(&kc->complete_jobs, job);
 
        else {
@@ -550,7 +550,7 @@ static int process_jobs(struct list_head *jobs, struct 
dm_kcopyd_client *kc,
 
                if (r < 0) {
                        /* error this rogue job */
-                       if (job->rw & WRITE)
+                       if (op_is_write(job->rw))
                                job->write_err = (unsigned long) -1L;
                        else
                                job->read_err = 1;
-- 
2.7.2

<Prev in Thread] Current Thread [Next in Thread>