target: Add WRITE_SAME (10) parsing and refactor passthrough checks
authorNicholas Bellinger <nab@linux-iscsi.org>
Thu, 28 Jul 2011 07:07:03 +0000 (00:07 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Mon, 22 Aug 2011 19:26:21 +0000 (19:26 +0000)
commit706d5860969b3b24d65d9a57bd3bb5e4a1419c08
treea6293f322a5327d3c317c09197b33d66e22d010e
parent16ab8e60a0ebc22cfbe61d84e620457a15f3a0bc
target: Add WRITE_SAME (10) parsing and refactor passthrough checks

This patch adds initial WRITE_SAME (10) w/ UNMAP=1 support following updates in
sbcr26 to allow UNMAP=1 for the non 16 + 32 byte CDB case.  It also refactors
current pSCSI passthrough passthrough checks into target_check_write_same_discard()
ahead of UNMAP=0 w/ write payload support into target_core_iblock.c.

This includes the support for handling WRITE_SAME in transport_emulate_control_cdb(),
and converts target_emulate_write_same to accept num_blocks directly for
WRITE_SAME, WRITE_SAME_16 and WRITE_SAME_32.

Reported-by: Eric Seppanen <eric@purestorage.com>
Cc: Roland Dreier <roland@purestorage.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@risingtidesystems.com>
drivers/target/target_core_cdb.c
drivers/target/target_core_transport.c