From 6cb90e11b653feac4522f6d7672cf27269156cdc Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Sun, 26 Jul 2015 16:21:34 +0300 Subject: [PATCH] LU-6908 lfsck: initalize name before use lfsck_create_lpf() should initialize name before using that to enqueue a hashed lock. Change-Id: I32ade3231111e5ce687eff348a0454a98c34d101 Signed-off-by: Alex Zhuravlev Reviewed-on: http://review.whamcloud.com/15727 Tested-by: Jenkins Reviewed-by: Fan Yong Tested-by: Maloo Reviewed-by: Bobi Jam Reviewed-by: Oleg Drokin --- lustre/lfsck/lfsck_lib.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lustre/lfsck/lfsck_lib.c b/lustre/lfsck/lfsck_lib.c index 178aa3a..2a41620 100644 --- a/lustre/lfsck/lfsck_lib.c +++ b/lustre/lfsck/lfsck_lib.c @@ -485,6 +485,7 @@ int lfsck_lock(const struct lu_env *env, struct lfsck_instance *lfsck, LASSERT(S_ISDIR(lfsck_object_type(obj))); LASSERT(name != NULL); + LASSERT(name[0] != 0); LASSERT(!lustre_handle_is_used(&llh->llh_pdo_lh)); LASSERT(!lustre_handle_is_used(&llh->llh_reg_lh)); @@ -513,6 +514,7 @@ int lfsck_lock(const struct lu_env *env, struct lfsck_instance *lfsck, llh->llh_reg_mode = mode; resid->name[LUSTRE_RES_ID_HSH_OFF] = full_name_hash(name, strlen(name)); + LASSERT(resid->name[LUSTRE_RES_ID_HSH_OFF] != 0); rc = __lfsck_ibits_lock(env, lfsck, obj, resid, &llh->llh_reg_lh, bits, llh->llh_reg_mode); if (rc != 0) @@ -985,12 +987,12 @@ static int lfsck_create_lpf(const struct lu_env *env, LASSERT(parent != NULL); LASSERT(lfsck->li_lpf_obj == NULL); + snprintf(name, 8, "MDT%04x", node); rc = lfsck_lock(env, lfsck, parent, name, llh, MDS_INODELOCK_UPDATE, LCK_PW); if (rc != 0) RETURN(rc); - snprintf(name, 8, "MDT%04x", node); if (fid_is_zero(&bk->lb_lpf_fid)) { /* There is corner case that: in former LFSCK scanning we have * created the .lustre/lost+found/MDTxxxx but failed to update -- 1.8.3.1