target: Don't call TFO->write_pending if data_length == 0
authorRoland Dreier <roland@purestorage.com>
Tue, 14 Oct 2014 21:16:24 +0000 (14:16 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Tue, 28 Oct 2014 20:54:15 +0000 (13:54 -0700)
commit885e7b0e181c14e4d0ddd26c688bad2b84c1ada9
tree05b77664a7b7f13158c1d4e7da8b99be6387fb2b
parentcac7f2429872d3733dc3f9915857b1691da2eb2f
target: Don't call TFO->write_pending if data_length == 0

If an initiator sends a zero-length command (e.g. TEST UNIT READY) but
sets the transfer direction in the transport layer to indicate a
data-out phase, we still shouldn't try to transfer data.  At best it's
a NOP, and depending on the transport, we might crash on an
uninitialized sg list.

Reported-by: Craig Watson <craig.watson@vanguard-rugged.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Cc: <stable@vger.kernel.org> # 3.1
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_transport.c