From 7aa58847b94d0ebb2796774a2de2183ba7f8cc4b Mon Sep 17 00:00:00 2001 From: Alex Zhuravlev Date: Sat, 21 Dec 2019 18:40:20 +0300 Subject: [PATCH] LU-13098 ptlrpc: supress connection restored message if that happens on idling connection. Fixes: 5a6ceb664f07 ("LU-7236 ptlrpc: idle connections can disconnect") Signed-off-by: Alex Zhuravlev Change-Id: I506665d427f3e77477f53e2d3059bcb1daaf0318 Reviewed-on: https://review.whamcloud.com/37086 Tested-by: jenkins Reviewed-by: Andreas Dilger Tested-by: Maloo Reviewed-by: Amir Shehata Reviewed-by: Oleg Drokin --- lustre/include/lustre_import.h | 4 +++- lustre/ptlrpc/import.c | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/lustre/include/lustre_import.h b/lustre/include/lustre_import.h index a2de838..375d5ef 100644 --- a/lustre/include/lustre_import.h +++ b/lustre/include/lustre_import.h @@ -309,7 +309,9 @@ struct obd_import { /* connected but not FULL yet */ imp_connected:1, /* grant shrink disabled */ - imp_grant_shrink_disabled:1; + imp_grant_shrink_disabled:1, + /* to supress LCONSOLE() at conn.restore */ + imp_was_idle:1; u32 imp_connect_op; u32 imp_idle_timeout; u32 imp_idle_debug; diff --git a/lustre/ptlrpc/import.c b/lustre/ptlrpc/import.c index ab38eb5..e6063e4 100644 --- a/lustre/ptlrpc/import.c +++ b/lustre/ptlrpc/import.c @@ -1610,10 +1610,15 @@ int ptlrpc_import_recovery_state_machine(struct obd_import *imp) GOTO(out, rc); ptlrpc_activate_import(imp, true); - LCONSOLE_INFO("%s: Connection restored to %s (at %s)\n", - imp->imp_obd->obd_name, - obd_uuid2str(&conn->c_remote_uuid), - obd_import_nid2str(imp)); + CDEBUG_LIMIT(imp->imp_was_idle ? + imp->imp_idle_debug : D_CONSOLE, + "%s: Connection restored to %s (at %s)\n", + imp->imp_obd->obd_name, + obd_uuid2str(&conn->c_remote_uuid), + obd_import_nid2str(imp)); + spin_lock(&imp->imp_lock); + imp->imp_was_idle = 0; + spin_unlock(&imp->imp_lock); } if (imp->imp_state == LUSTRE_IMP_FULL) { @@ -1825,6 +1830,12 @@ int ptlrpc_disconnect_and_idle_import(struct obd_import *imp) CDEBUG_LIMIT(imp->imp_idle_debug, "%s: disconnect after %llus idle\n", imp->imp_obd->obd_name, ktime_get_real_seconds() - imp->imp_last_reply_time); + + /* don't make noise at reconnection */ + spin_lock(&imp->imp_lock); + imp->imp_was_idle = 1; + spin_unlock(&imp->imp_lock); + req->rq_interpret_reply = ptlrpc_disconnect_idle_interpret; ptlrpcd_add_req(req); -- 1.8.3.1