]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
iscsi-target: Fail connection on short sendmsg writes
authorNicholas Bellinger <nab@linux-iscsi.org>
Fri, 21 Nov 2014 04:50:07 +0000 (20:50 -0800)
committerZefan Li <lizefan@huawei.com>
Tue, 14 Apr 2015 09:33:47 +0000 (17:33 +0800)
commit32ba51997e4318bc09361d83933dc99d8e1c227c
tree558ea98cad4cebee6d8089425dd9f0c07f529264
parent96e44adce250199ec9b2b928be66365779ff1b59
iscsi-target: Fail connection on short sendmsg writes

commit 6bf6ca7515c1df06f5c03737537f5e0eb191e29e upstream.

This patch changes iscsit_do_tx_data() to fail on short writes
when kernel_sendmsg() returns a value different than requested
transfer length, returning -EPIPE and thus causing a connection
reset to occur.

This avoids a potential bug in the original code where a short
write would result in kernel_sendmsg() being called again with
the original iovec base + length.

In practice this has not been an issue because iscsit_do_tx_data()
is only used for transferring 48 byte headers + 4 byte digests,
along with seldom used control payloads from NOPIN + TEXT_RSP +
REJECT with less than 32k of data.

So following Al's audit of iovec consumers, go ahead and fail
the connection on short writes for now, and remove the bogus
logic ahead of his proper upstream fix.

Reported-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Zefan Li <lizefan@huawei.com>
drivers/target/iscsi/iscsi_target_util.c