aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/null_blk_main.c
diff options
context:
space:
mode:
authorChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>2019-08-22 21:45:18 -0700
committerJens Axboe <axboe@kernel.dk>2019-08-23 06:58:05 -0600
commitfceb5d1b19cbe6263f09dbe8e8138edf02eb6e6b (patch)
treea9ac7e571d1e33efcce191de63ed75e1dafebf25 /drivers/block/null_blk_main.c
parentnull_blk: create a helper for mem-backed ops (diff)
downloadlinux-dev-fceb5d1b19cbe6263f09dbe8e8138edf02eb6e6b.tar.xz
linux-dev-fceb5d1b19cbe6263f09dbe8e8138edf02eb6e6b.zip
null_blk: create a helper for zoned devices
This patch creates a helper function for handling zoned block device operations. This patch also restructured the code for null_blk_zoned.c and uses the pattern to return blk_status_t and catch the error in the function null_handle_cmd() into cmd->error variable instead of setting it up in the deeper layer just like the way it is done for flush, badblocks and memory backed case in the null_handle_cmd(). We also move null_handle_zoned() to the null_blk_zoned.c to keep the zoned code separate. Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'drivers/block/null_blk_main.c')
-rw-r--r--drivers/block/null_blk_main.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/block/null_blk_main.c b/drivers/block/null_blk_main.c
index 4299274cccfb..bf40c3115bb9 100644
--- a/drivers/block/null_blk_main.c
+++ b/drivers/block/null_blk_main.c
@@ -1209,14 +1209,9 @@ static blk_status_t null_handle_cmd(struct nullb_cmd *cmd, sector_t sector,
if (dev->memory_backed)
cmd->error = null_handle_memory_backed(cmd, op);
- if (!cmd->error && dev->zoned) {
- if (op == REQ_OP_WRITE)
- null_zone_write(cmd, sector, nr_sectors);
- else if (op == REQ_OP_ZONE_RESET)
- null_zone_reset(cmd, sector);
- else if (op == REQ_OP_ZONE_RESET_ALL)
- null_zone_reset(cmd, 0);
- }
+ if (!cmd->error && dev->zoned)
+ cmd->error = null_handle_zoned(cmd, op, sector, nr_sectors);
+
out:
/* Complete IO by inline, softirq or timer */
switch (dev->irqmode) {