Commit b3b3f7f9 authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Tomasz Zawadzki
Browse files

sock: clarify spdk_sock_flush on failure behavior



Almost all SPDK in-tree usages (except one in nvmf/tcp.c and
iscsi_fuzz) check for EAGAIN errno on failure. This is due to sendmsg
and SSL_writev which defines set of retryable errors.

Change-Id: I06dd37cebdcb02ea4329728424b09d3ee796c33c
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25957


Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz@tzawadzki.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarBen Walker <ben@nvidia.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
parent 22fb74e7
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -407,9 +407,11 @@ int spdk_sock_close(struct spdk_sock **sock);
/**
 * Flush a socket from data gathered in previous writev_async calls.
 *
 * On failure check errno matching EAGAIN to determine failure is retryable.
 *
 * \param sock Socket to flush.
 *
 * \return number of bytes sent on success, -1 (with errno set) on failure
 * \return number of bytes sent on success, -1 on failure with errno set.
 */
int spdk_sock_flush(struct spdk_sock *sock);

+1 −1
Original line number Diff line number Diff line
@@ -3489,7 +3489,7 @@ nvmf_tcp_poll_group_remove(struct spdk_nvmf_transport_poll_group *group,
	}
	TAILQ_REMOVE(&tgroup->qpairs, tqpair, link);

	/* Try to force out any pending writes */
	/* Try to force out any pending writes, intentionally do not check rc as it is best effort try. */
	spdk_sock_flush(tqpair->sock);

	rc = spdk_sock_group_remove_sock(tgroup->sock_group, tqpair->sock);