sock: Null out sock on spdk_sock_close in all success cases

Even if the operation is deferred, null it out if it reported success.

Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Change-Id: I3cc9eaa88bdd7a2e7d13790782f4a9b0966e5585
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/6892
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Ben Walker 2021-03-15 14:22:04 -07:00 committed by Tomasz Zawadzki
parent 86ef8f21c9
commit 823bb32026

View File

@ -358,7 +358,6 @@ int
spdk_sock_close(struct spdk_sock **_sock)
{
struct spdk_sock *sock = *_sock;
int rc;
if (sock == NULL) {
errno = EBADF;
@ -371,6 +370,9 @@ spdk_sock_close(struct spdk_sock **_sock)
return -1;
}
/* Beyond this point the socket is considered closed. */
*_sock = NULL;
sock->flags.closed = true;
if (sock->cb_cnt > 0) {
@ -380,12 +382,7 @@ spdk_sock_close(struct spdk_sock **_sock)
spdk_sock_abort_requests(sock);
rc = sock->net_impl->close(sock);
if (rc == 0) {
*_sock = NULL;
}
return rc;
return sock->net_impl->close(sock);
}
ssize_t