Commit 51111666 authored by Mike Christie's avatar Mike Christie Committed by Jens Axboe
Browse files

dm: use op_is_write instead of checking for REQ_WRITE



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: default avatarMike Christie <mchristi@redhat.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent a8ebb056
...@@ -409,7 +409,7 @@ static int sync_io(struct dm_io_client *client, unsigned int num_regions, ...@@ -409,7 +409,7 @@ static int sync_io(struct dm_io_client *client, unsigned int num_regions,
struct io *io; struct io *io;
struct sync_io sio; struct sync_io sio;
if (num_regions > 1 && (rw & RW_MASK) != WRITE) { if (num_regions > 1 && !op_is_write(rw)) {
WARN_ON(1); WARN_ON(1);
return -EIO; return -EIO;
} }
...@@ -442,7 +442,7 @@ static int async_io(struct dm_io_client *client, unsigned int num_regions, ...@@ -442,7 +442,7 @@ static int async_io(struct dm_io_client *client, unsigned int num_regions,
{ {
struct io *io; struct io *io;
if (num_regions > 1 && (rw & RW_MASK) != WRITE) { if (num_regions > 1 && !op_is_write(rw)) {
WARN_ON(1); WARN_ON(1);
fn(1, context); fn(1, context);
return -EIO; return -EIO;
......
...@@ -465,7 +465,7 @@ static void complete_io(unsigned long error, void *context) ...@@ -465,7 +465,7 @@ static void complete_io(unsigned long error, void *context)
io_job_finish(kc->throttle); io_job_finish(kc->throttle);
if (error) { if (error) {
if (job->rw & WRITE) if (op_is_write(job->rw))
job->write_err |= error; job->write_err |= error;
else else
job->read_err = 1; job->read_err = 1;
...@@ -477,7 +477,7 @@ static void complete_io(unsigned long error, void *context) ...@@ -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); push(&kc->complete_jobs, job);
else { else {
...@@ -550,7 +550,7 @@ static int process_jobs(struct list_head *jobs, struct dm_kcopyd_client *kc, ...@@ -550,7 +550,7 @@ static int process_jobs(struct list_head *jobs, struct dm_kcopyd_client *kc,
if (r < 0) { if (r < 0) {
/* error this rogue job */ /* error this rogue job */
if (job->rw & WRITE) if (op_is_write(job->rw))
job->write_err = (unsigned long) -1L; job->write_err = (unsigned long) -1L;
else else
job->read_err = 1; job->read_err = 1;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment