Consolidate code to set and get the state of a request. Signed-off-by: Ram Pai <linuxram@xxxxxxxxxx> --- drivers/md/dm-inplace-compress.c | 31 +++++++++++++++++-------------- 1 files changed, 17 insertions(+), 14 deletions(-) diff --git a/drivers/md/dm-inplace-compress.c b/drivers/md/dm-inplace-compress.c index b1c3e5f..55a515b 100644 --- a/drivers/md/dm-inplace-compress.c +++ b/drivers/md/dm-inplace-compress.c @@ -44,6 +44,9 @@ static struct kernel_param_ops dm_icomp_compressor_param_ops = { module_param_cb(compress_algorithm, &dm_icomp_compressor_param_ops, &dm_icomp_compressor_kparam, 0644); +#define SET_REQ_STAGE(req, value) (req->stage = value) +#define GET_REQ_STAGE(req) req->stage + static int dm_icomp_get_compressor(const char *s) { int r, val_len; @@ -835,15 +838,15 @@ static void dm_icomp_put_req(struct dm_icomp_req *req) if (atomic_dec_return(&req->io_pending)) return; - if (req->stage == STAGE_INIT) /* waiting for locking */ + if (GET_REQ_STAGE(req) == STAGE_INIT) /* waiting for locking */ return; - if (req->stage == STAGE_READ_DECOMP || - req->stage == STAGE_WRITE_COMP || + if (GET_REQ_STAGE(req) == STAGE_READ_DECOMP || + GET_REQ_STAGE(req) == STAGE_WRITE_COMP || req->result) - req->stage = STAGE_DONE; + SET_REQ_STAGE(req, STAGE_DONE); - if (req->stage != STAGE_DONE) { + if (GET_REQ_STAGE(req) != STAGE_DONE) { dm_icomp_queue_req(req->info, req); return; } @@ -1153,7 +1156,7 @@ static void dm_icomp_handle_read_decomp(struct dm_icomp_req *req) off_t bio_off = 0; int ret; - req->stage = STAGE_READ_DECOMP; + SET_REQ_STAGE(req, STAGE_READ_DECOMP); if (req->result) return; @@ -1250,7 +1253,7 @@ static void dm_icomp_handle_read_read_existing(struct dm_icomp_req *req) u64 block_index, first_block_index; u16 logical_sectors, data_sectors; - req->stage = STAGE_READ_EXISTING; + SET_REQ_STAGE(req, STAGE_READ_EXISTING); block_index = dm_icomp_sector_to_block(req->bio->bi_iter.bi_sector); again: @@ -1279,14 +1282,14 @@ static void dm_icomp_handle_read_request(struct dm_icomp_req *req) { dm_icomp_get_req(req); - if (req->stage == STAGE_INIT) { + if (GET_REQ_STAGE(req) == STAGE_INIT) { if (!dm_icomp_lock_req_range(req)) { dm_icomp_put_req(req); return; } dm_icomp_handle_read_read_existing(req); - } else if (req->stage == STAGE_READ_EXISTING) + } else if (GET_REQ_STAGE(req) == STAGE_READ_EXISTING) dm_icomp_handle_read_decomp(req); dm_icomp_put_req(req); @@ -1411,7 +1414,7 @@ static void dm_icomp_handle_write_comp(struct dm_icomp_req *req) int ret; bool handle_bio = true; - req->stage = STAGE_WRITE_COMP; + SET_REQ_STAGE(req, STAGE_WRITE_COMP); if (req->result) return; @@ -1486,7 +1489,7 @@ static void dm_icomp_handle_write_read_existing(struct dm_icomp_req *req) u64 block_index, first_block_index; u16 logical_sectors, data_sectors; - req->stage = STAGE_READ_EXISTING; + SET_REQ_STAGE(req, STAGE_READ_EXISTING); block_index = dm_icomp_sector_to_block(req->bio->bi_iter.bi_sector); dm_icomp_get_extent(req->info, block_index, &first_block_index, @@ -1524,14 +1527,14 @@ static void dm_icomp_handle_write_request(struct dm_icomp_req *req) { dm_icomp_get_req(req); - if (req->stage == STAGE_INIT) { + if (GET_REQ_STAGE(req) == STAGE_INIT) { if (!dm_icomp_lock_req_range(req)) { dm_icomp_put_req(req); return; } dm_icomp_handle_write_read_existing(req); - } else if (req->stage == STAGE_READ_EXISTING) + } else if (GET_REQ_STAGE(req) == STAGE_READ_EXISTING) dm_icomp_handle_write_comp(req); dm_icomp_put_req(req); @@ -1611,7 +1614,7 @@ static int dm_icomp_map(struct dm_target *ti, struct bio *bio) atomic_set(&req->io_pending, 0); INIT_LIST_HEAD(&req->all_io); req->result = 0; - req->stage = STAGE_INIT; + SET_REQ_STAGE(req, STAGE_INIT); req->locked_locks = 0; req->cpu = raw_smp_processor_id(); -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html