From 081a71a121f0bb42d73a7a90812fc3b2a1c02091 Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Sun, 7 Dec 2014 06:54:47 +0800 Subject: [PATCH] LU-6312 lfsck: modify llsd_master_list with spin_lock There was spin_lock leak in layout LFSCK lfsck_layout_slave_quit, that may cause modifying lfsck_layout_slave_data::llsd_master_list without spin_lock when others traverses such list with spin_lock, as to the later one(s) access invalid RAM or fall into soft-lockup. Signed-off-by: Fan Yong Change-Id: I4d534313ec3f2cbdbed142cb1ee63c19404bbe65 Reviewed-on: http://review.whamcloud.com/13944 Tested-by: Jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Oleg Drokin --- lustre/lfsck/lfsck_layout.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c index 2100784..00ef9cf 100644 --- a/lustre/lfsck/lfsck_layout.c +++ b/lustre/lfsck/lfsck_layout.c @@ -5179,6 +5179,7 @@ static void lfsck_layout_slave_quit(const struct lu_env *env, list_del_init(&llst->llst_list); spin_unlock(&llsd->llsd_lock); lfsck_layout_llst_put(llst); + spin_lock(&llsd->llsd_lock); } spin_unlock(&llsd->llsd_lock); -- 1.8.3.1