target: Don't allow setting WC emulation if device doesn't support
Just like for pSCSI, if the transport sets get_write_cache, then it is not valid to enable write cache emulation for it. Return an error. see https://bugzilla.redhat.com/show_bug.cgi?id=1082675 Reviewed-by: Chris Leech <cleech@redhat.com> Signed-off-by: Andy Grover <agrover@redhat.com> Cc: stable@vger.kernel.org # 3.10+ Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
52d0aa7980
commit
07b8dae38b
1 changed files with 4 additions and 4 deletions
|
@ -798,10 +798,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;
|
||||
|
|
Loading…
Reference in a new issue