diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 469aefecfe0ba9a1ce4a743e1aaf9d79da7973d7..5c73d4f440826b9dc02ff5197d45c647780474ac 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -1472,6 +1472,10 @@ static int __send_empty_flush(struct clone_info *ci) unsigned target_nr = 0; struct dm_target *ti; + if ((ci->io->orig_bio->bi_opf & (REQ_IDLE | REQ_SYNC)) == + (REQ_IDLE | REQ_SYNC)) + ci->bio->bi_opf |= REQ_IDLE; + BUG_ON(bio_has_data(ci->bio)); while ((ti = dm_table_get_target(ci->map, target_nr++))) __send_duplicate_bios(ci, ti, ti->num_flush_bios, NULL);