Re: [PATCH 05/12] md-cluster: init completion within lockres_init
From: Goldwyn Rodrigues <hidden>
Date: 2015-07-27 16:44:53
On 07/10/2015 04:01 AM, Guoqing Jiang wrote:
We should init completion within lockres_init, otherwise completion could be initialized more than one time during it's life cycle. Signed-off-by: Guoqing Jiang <redacted>
Reviewed-by: Goldwyn Rodrigues <redacted>
quoted hunk ↗ jump to hunk
--- drivers/md/md-cluster.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)diff --git a/drivers/md/md-cluster.c b/drivers/md/md-cluster.c index 85b7836..2a57f19 100644 --- a/drivers/md/md-cluster.c +++ b/drivers/md/md-cluster.c@@ -100,7 +100,6 @@ static int dlm_lock_sync(struct dlm_lock_resource *res, int mode) { int ret = 0; - init_completion(&res->completion); ret = dlm_lock(res->ls, mode, &res->lksb, res->flags, res->name, strlen(res->name), 0, sync_ast, res, res->bast);@@ -125,6 +124,7 @@ static struct dlm_lock_resource *lockres_init(struct mddev *mddev, res = kzalloc(sizeof(struct dlm_lock_resource), GFP_KERNEL); if (!res) return NULL; + init_completion(&res->completion); res->ls = cinfo->lockspace; res->mddev = mddev; namelen = strlen(name);@@ -169,7 +169,6 @@ static void lockres_free(struct dlm_lock_resource *res) if (!res) return; - init_completion(&res->completion); dlm_unlock(res->ls, res->lksb.sb_lkid, 0, &res->lksb, res); wait_for_completion(&res->completion);
-- Goldwyn