Before remapping a barrier bio, make sure that there are no un-issued pending I/O in the workqueue. Otherwise a dm_flush would simply add a barrier request to the underlying device, without issuing the bio's queued in the dm_crypt device. Signed-off-by: Nikanth Karthikesan <knikanth@xxxxxxx> -- diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c index a936372..be68e70 100644 --- a/drivers/md/dm-crypt.c +++ b/drivers/md/dm-crypt.c @@ -1252,6 +1252,7 @@ static int crypt_map(struct dm_target *ti, struct bio *bio, if (unlikely(bio_empty_barrier(bio))) { cc = ti->private; + flush_workqueue(cc->io_queue); bio->bi_bdev = cc->dev->bdev; return DM_MAPIO_REMAPPED; } -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel