block: don't allow enabling a cache on devices that don't support it
[linux-2.6-microblaze.git] / block / blk-settings.c
index 4dd5905..0046b44 100644 (file)
@@ -830,10 +830,13 @@ EXPORT_SYMBOL(blk_set_queue_depth);
  */
 void blk_queue_write_cache(struct request_queue *q, bool wc, bool fua)
 {
-       if (wc)
+       if (wc) {
+               blk_queue_flag_set(QUEUE_FLAG_HW_WC, q);
                blk_queue_flag_set(QUEUE_FLAG_WC, q);
-       else
+       } else {
+               blk_queue_flag_clear(QUEUE_FLAG_HW_WC, q);
                blk_queue_flag_clear(QUEUE_FLAG_WC, q);
+       }
        if (fua)
                blk_queue_flag_set(QUEUE_FLAG_FUA, q);
        else