From fa507031d245b08c7f24efed32819daf2aa42ab3 Mon Sep 17 00:00:00 2001 From: Jinshan Xiong Date: Mon, 7 Mar 2011 10:56:17 -0800 Subject: [PATCH] LU-82 Remove useless clio locks A CLS_NEW toplock must be deleted also if the last sublock is being deleted. Signed-off-by: Jinshan Xiong Change-Id: I9831ab534ae222fe74ebaf34faafe00bf3d18cb7 Reviewed-on: http://review.whamcloud.com/305 Tested-by: Hudson Reviewed-by: Oleg Drokin --- lustre/lov/lovsub_lock.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lustre/lov/lovsub_lock.c b/lustre/lov/lovsub_lock.c index f7d54ba..4810da4 100644 --- a/lustre/lov/lovsub_lock.c +++ b/lustre/lov/lovsub_lock.c @@ -301,9 +301,7 @@ static int lovsub_lock_delete_one(const struct lu_env *env, result = 0; switch (parent->cll_state) { - case CLS_NEW: case CLS_QUEUING: - case CLS_ENQUEUED: case CLS_FREEING: cl_lock_signal(env, parent); break; @@ -337,6 +335,8 @@ static int lovsub_lock_delete_one(const struct lu_env *env, * enqueues missing sub-lock. */ cl_lock_state_set(env, parent, CLS_NEW); + /* fall through */ + case CLS_NEW: /* * if last sub-lock is canceled, destroy the top-lock (which * is now `empty') proactively. @@ -376,6 +376,7 @@ static int lovsub_lock_delete_one(const struct lu_env *env, } } break; + case CLS_ENQUEUED: case CLS_HELD: CL_LOCK_DEBUG(D_ERROR, env, parent, "Delete CLS_HELD lock\n"); default: -- 1.8.3.1