diff --git a/drivers/block/loop.c b/drivers/block/loop.c index 578fc034db3f483c9224e222f35fb4c4a341e2a6..81d20ec93375fe6b1e90f5184b25da2cefaec4de 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -1212,6 +1212,9 @@ static int __loop_clr_fd(struct loop_device *lo, bool release) goto out_unlock; } + if (test_bit(QUEUE_FLAG_WC, &lo->lo_queue->queue_flags)) + blk_queue_write_cache(lo->lo_queue, false, false); + /* freeze request queue during the transition */ blk_mq_freeze_queue(lo->lo_queue);