From 81a47d9820827bdc87b3b88afaa86a357b20f17b Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Mon, 28 Oct 2019 13:34:35 -0700 Subject: [PATCH] sock/posix: Move repeated socket allocation code to a function Change-Id: I71726be5dbe2bb112b7569869dd456ef38f84d9d Signed-off-by: Ben Walker Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472649 Tested-by: SPDK CI Jenkins Reviewed-by: Alexey Marchuk Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- module/sock/posix/posix.c | 56 ++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/module/sock/posix/posix.c b/module/sock/posix/posix.c index 76598ad3d..1e3c49449 100644 --- a/module/sock/posix/posix.c +++ b/module/sock/posix/posix.c @@ -206,6 +206,33 @@ spdk_posix_sock_set_sendbuf(struct spdk_sock *_sock, int sz) return 0; } +static struct spdk_posix_sock * +_spdk_posix_sock_alloc(int fd) +{ + struct spdk_posix_sock *sock; + int rc; + + sock = calloc(1, sizeof(*sock)); + if (sock == NULL) { + SPDK_ERRLOG("sock allocation failed\n"); + return NULL; + } + + sock->fd = fd; + + rc = spdk_posix_sock_set_recvbuf(&sock->base, SO_RCVBUF_SIZE); + if (rc) { + /* Not fatal */ + } + + rc = spdk_posix_sock_set_sendbuf(&sock->base, SO_SNDBUF_SIZE); + if (rc) { + /* Not fatal */ + } + + return sock; +} + static struct spdk_sock * spdk_posix_sock_create(const char *ip, int port, enum spdk_posix_sock_create_type type) { @@ -330,25 +357,13 @@ retry: return NULL; } - sock = calloc(1, sizeof(*sock)); + sock = _spdk_posix_sock_alloc(fd); if (sock == NULL) { SPDK_ERRLOG("sock allocation failed\n"); close(fd); return NULL; } - sock->fd = fd; - - rc = spdk_posix_sock_set_recvbuf(&sock->base, SO_RCVBUF_SIZE); - if (rc) { - /* Not fatal */ - } - - rc = spdk_posix_sock_set_sendbuf(&sock->base, SO_SNDBUF_SIZE); - if (rc) { - /* Not fatal */ - } - return &sock->base; } @@ -394,25 +409,12 @@ spdk_posix_sock_accept(struct spdk_sock *_sock) return NULL; } - new_sock = calloc(1, sizeof(*sock)); + new_sock = _spdk_posix_sock_alloc(fd); if (new_sock == NULL) { - SPDK_ERRLOG("sock allocation failed\n"); close(fd); return NULL; } - new_sock->fd = fd; - - rc = spdk_posix_sock_set_recvbuf(&new_sock->base, SO_RCVBUF_SIZE); - if (rc) { - /* Not fatal */ - } - - rc = spdk_posix_sock_set_sendbuf(&new_sock->base, SO_SNDBUF_SIZE); - if (rc) { - /* Not fatal */ - } - return &new_sock->base; }