From 42b7ddf41614c4cdf9b7d54758636c319d1560da Mon Sep 17 00:00:00 2001 From: Alexey Lyashkov Date: Sun, 5 Jul 2015 10:22:04 -0400 Subject: [PATCH] LU-6275 obdclass: don't forget to remove LWP mgc config We may take an MGC lock, but failed with take a config from MGS. mgc will cancel a lock in that situation and but lock added to re-enqueue list. Shutdown (cleanup) started as result lustre_start_lwp failed, but cleanup forget to call lustre_end_log as lsi_lwp_started don't set so - lock/cld still on enqueue list, but super block is destroyed. Signed-off-by: Alexey Lyashkov Change-Id: I9e72d2526f5a21e66a326532d4770c07e2b7cca2 Reviewed-on: http://review.whamcloud.com/13863 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: James Simmons Reviewed-by: Oleg Drokin --- lustre/obdclass/obd_mount_server.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lustre/obdclass/obd_mount_server.c b/lustre/obdclass/obd_mount_server.c index b8ee012..a236d16 100644 --- a/lustre/obdclass/obd_mount_server.c +++ b/lustre/obdclass/obd_mount_server.c @@ -884,7 +884,7 @@ static int lustre_disconnect_lwp(struct super_block *sb) /* end log first */ cfg->cfg_instance = sb; rc = lustre_end_log(sb, logname, cfg); - if (rc != 0) + if (rc != 0 && rc != -ENOENT) GOTO(out, rc); lsi->lsi_lwp_started = 0; @@ -993,8 +993,8 @@ static int lustre_start_lwp(struct super_block *sb) cfg->cfg_callback = client_lwp_config_process; cfg->cfg_instance = sb; rc = lustre_process_log(sb, logname, cfg); - if (rc == 0) - lsi->lsi_lwp_started = 1; + /* need to remove config llog from mgc */ + lsi->lsi_lwp_started = 1; GOTO(out, rc); -- 1.8.3.1