diff --git a/drivers/md/dm.c b/drivers/md/dm.c index de206ddaac20..4ca96c3c7231 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -921,9 +921,6 @@ static void clone_endio(struct bio *bio) disable_write_zeroes(md); } - if (blk_queue_is_zoned(q)) - dm_zone_endio(io, bio); - if (endio) { int r = endio(tio->ti, bio, &error); switch (r) { @@ -949,6 +946,9 @@ static void clone_endio(struct bio *bio) } } + if (blk_queue_is_zoned(q)) + dm_zone_endio(io, bio); + if (unlikely(swap_bios_limit(tio->ti, bio))) { struct mapped_device *md = io->md; up(&md->swap_bios_semaphore);