From 0a18a6a2b2c78a8079131848418a4dc8ebb594d1 Mon Sep 17 00:00:00 2001 From: Frank Zago Date: Thu, 16 Oct 2014 11:49:49 -0500 Subject: [PATCH] LU-5756 hsm: add missing return code in llapi_hsm_copytool_register llapi_hsm_copytool_register() returns a bogus error code on one error path. Removed a never true "if" case. If the LL_IOC_HSM_CT_START fails, then we have to go to out_kuc, not out_err. Change-Id: I738078392f98d4616f6451beece4f0d97bc8051d Signed-off-by: frank zago Reviewed-on: http://review.whamcloud.com/12314 Reviewed-by: Henri Doreau Tested-by: Jenkins Reviewed-by: James Nunez Tested-by: Maloo Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin --- lustre/utils/liblustreapi_hsm.c | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/lustre/utils/liblustreapi_hsm.c b/lustre/utils/liblustreapi_hsm.c index 09b537f..7c2d175 100644 --- a/lustre/utils/liblustreapi_hsm.c +++ b/lustre/utils/liblustreapi_hsm.c @@ -654,11 +654,16 @@ out_free: } /** Register a copytool - * \param[out] priv Opaque private control structure - * \param mnt Lustre filesystem mount point - * \param archive_count - * \param archives Which archive numbers this copytool is responsible for - * \param rfd_flags flags applied to read fd of pipe (e.g. O_NONBLOCK) + * \param[out] priv Opaque private control structure + * \param mnt Lustre filesystem mount point + * \param archive_count Number of valid archive IDs in \a archives + * \param archives Which archive numbers this copytool is + * responsible for + * \param rfd_flags flags applied to read fd of pipe + * (e.g. O_NONBLOCK) + * + * \retval 0 on success. + * \retval -errno on error. */ int llapi_hsm_copytool_register(struct hsm_copytool_private **priv, const char *mnt, int archive_count, @@ -714,6 +719,7 @@ int llapi_hsm_copytool_register(struct hsm_copytool_private **priv, llapi_err_noerrno(LLAPI_MSG_ERROR, "maximum of %zu archives supported", 8 * sizeof(ct->archives)); + rc = -EINVAL; goto out_err; } /* in the list we have a all archive wildcard @@ -738,9 +744,7 @@ int llapi_hsm_copytool_register(struct hsm_copytool_private **priv, rc = -errno; llapi_error(LLAPI_MSG_ERROR, rc, "cannot start copytool on '%s'", mnt); - goto out_err; - } else { - rc = 0; + goto out_kuc; } llapi_hsm_log_ct_registration(&ct, CT_REGISTER); @@ -748,10 +752,8 @@ int llapi_hsm_copytool_register(struct hsm_copytool_private **priv, /* Only the kernel reference keeps the write side open */ close(ct->kuc.lk_wfd); ct->kuc.lk_wfd = LK_NOFD; - if (rc < 0) - goto out_kuc; - *priv = ct; + return 0; out_kuc: -- 1.8.3.1