From bda43cbe369a32d9a6840ca28612cad5658626fc Mon Sep 17 00:00:00 2001 From: Alexander Boyko Date: Tue, 18 Sep 2018 08:21:52 -0400 Subject: [PATCH] LU-10595 mgc: don't proccess cld during stopping The patch fixes the log processing during stopping. It was general protection fault at mgc_process_cfg_log() at lsi access. Lsi pointer was wrong 38323172756f6663, and all cld->cld_cfg.cfg_sb had invalid data. Signed-off-by: Alexander Boyko Cray-bug-id: LUS-6199 Change-Id: Ie4f35ba5be707ab8d274cc26fd2c230ffcb0a16e Reviewed-on: https://review.whamcloud.com/33190 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Tested-by: James Simmons Reviewed-by: Oleg Drokin --- lustre/mgc/mgc_request.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lustre/mgc/mgc_request.c b/lustre/mgc/mgc_request.c index f640e0e..381a57a 100644 --- a/lustre/mgc/mgc_request.c +++ b/lustre/mgc/mgc_request.c @@ -2099,6 +2099,11 @@ restart: goto restart; } else { mutex_lock(&cld->cld_lock); + /* unlock/lock mutex, so check stopping again */ + if (cld->cld_stopping) { + mutex_unlock(&cld->cld_lock); + RETURN(0); + } spin_lock(&config_list_lock); cld->cld_lostlock = 1; spin_unlock(&config_list_lock); -- 1.8.3.1