target: Don't allow setting WC emulation if device doesn't support
[firefly-linux-kernel-4.4.55.git] / drivers / target / target_core_device.c
index 660b109487ae36f65d21804f18b16f0ca7cd4351..8032917b663671b058eaa1e05c4eac62d307f667 100644 (file)
@@ -796,10 +796,10 @@ int se_dev_set_emulate_write_cache(struct se_device *dev, int flag)
                pr_err("emulate_write_cache not supported for pSCSI\n");
                return -EINVAL;
        }
-       if (dev->transport->get_write_cache) {
-               pr_warn("emulate_write_cache cannot be changed when underlying"
-                       " HW reports WriteCacheEnabled, ignoring request\n");
-               return 0;
+       if (flag &&
+           dev->transport->get_write_cache) {
+               pr_err("emulate_write_cache not supported for this device\n");
+               return -EINVAL;
        }
 
        dev->dev_attrib.emulate_write_cache = flag;