]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
target: Fail WRITE_SAME w/ UNMAP=1 when emulate_tpws=0
authorNicholas Bellinger <nab@linux-iscsi.org>
Sat, 14 Feb 2015 01:56:19 +0000 (01:56 +0000)
committerNicholas Bellinger <nab@linux-iscsi.org>
Sat, 14 Feb 2015 02:54:40 +0000 (02:54 +0000)
This patch adds a check within sbc_setup_write_same() to fail a
WRITE_SAME w/ UNMAP=1 op, if the backend device has emulate_tpws
disabled.

Cc: Martin Petersen <martin.petersen@oracle.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_sbc.c

index 856e800926b885b04993ca2a2f67b6be5069ac9a..0d307c34f08e18be5af22ba690cb58f5f840119e 100644 (file)
@@ -293,6 +293,11 @@ sbc_setup_write_same(struct se_cmd *cmd, unsigned char *flags, struct sbc_ops *o
                if (!ops->execute_write_same_unmap)
                        return TCM_UNSUPPORTED_SCSI_OPCODE;
 
+               if (!dev->dev_attrib.emulate_tpws) {
+                       pr_err("Got WRITE_SAME w/ UNMAP=1, but backend device"
+                              " has emulate_tpws disabled\n");
+                       return TCM_UNSUPPORTED_SCSI_OPCODE;
+               }
                cmd->execute_cmd = ops->execute_write_same_unmap;
                return 0;
        }