From 0ab9e68328e2cfbcf4f891d68055b9243a1f553c Mon Sep 17 00:00:00 2001 From: wang di Date: Sat, 22 Aug 2015 14:14:07 -0700 Subject: [PATCH 1/1] LU-6873 lod: duplicate mutex unlock Remove duplicate mutex unlock in lod_add_device(). Signed-off-by: wang di Change-Id: Ibe73bf39a18ef96ecab10605d479e7b6ed97b397 Reviewed-on: http://review.whamcloud.com/16067 Reviewed-by: Andreas Dilger Tested-by: Jenkins Reviewed-by: Fan Yong Reviewed-by: James Simmons Tested-by: Maloo --- lustre/lod/lod_lov.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lustre/lod/lod_lov.c b/lustre/lod/lod_lov.c index 0ae2f5d..4927303 100644 --- a/lustre/lod/lod_lov.c +++ b/lustre/lod/lod_lov.c @@ -217,6 +217,7 @@ int lod_add_device(const struct lu_env *env, struct lod_device *lod, struct lod_tgt_descs *ltd; struct obd_uuid obd_uuid; bool for_ost; + bool lock = false; ENTRY; CDEBUG(D_CONFIG, "osp:%s idx:%d gen:%d\n", osp, index, gen); @@ -333,6 +334,7 @@ int lod_add_device(const struct lu_env *env, struct lod_device *lod, } mutex_lock(<d->ltd_mutex); + lock = true; if (cfs_bitmap_check(ltd->ltd_tgt_bitmap, index)) { CERROR("%s: device %d is registered already\n", obd->obd_name, index); @@ -377,6 +379,7 @@ int lod_add_device(const struct lu_env *env, struct lod_device *lod, ltd->ltd_tgtnr++; mutex_unlock(<d->ltd_mutex); lod_putref(lod, ltd); + lock = false; if (lod->lod_recovery_completed) ldev->ld_ops->ldo_recovery_complete(env, ldev); @@ -402,8 +405,10 @@ out_fini_llog: out_pool: lod_ost_pool_remove(&lod->lod_pool_info, index); out_mutex: - mutex_unlock(<d->ltd_mutex); - lod_putref(lod, ltd); + if (lock) { + mutex_unlock(<d->ltd_mutex); + lod_putref(lod, ltd); + } out_desc: OBD_FREE_PTR(tgt_desc); out_conn: -- 1.8.3.1