From: anserper Date: Tue, 18 Nov 2008 03:43:31 +0000 (+0000) Subject: Branch b1_6 X-Git-Tag: GIT_EPOCH_B_RELEASE_1_6_7~2^3~74 X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=9445445b1916a2e1c64aa142fd3b3c05357e806c;p=fs%2Flustre-release.git Branch b1_6 b=12433 i=Oleg Drokin i=Yury Umanets fix the message about imp_inval --- diff --git a/lustre/ptlrpc/recover.c b/lustre/ptlrpc/recover.c index 0045ddd..4adf785 100644 --- a/lustre/ptlrpc/recover.c +++ b/lustre/ptlrpc/recover.c @@ -245,19 +245,18 @@ int ptlrpc_set_import_active(struct obd_import *imp, int active) if (!active) { LCONSOLE_WARN("setting import %s INACTIVE by administrator " "request\n", obd2cli_tgt(imp->imp_obd)); - ptlrpc_invalidate_import(imp); + /* set before invalidate to avoid messages about imp_inval + * set without imp_deactive in ptlrpc_import_delay_req */ spin_lock(&imp->imp_lock); imp->imp_deactive = 1; spin_unlock(&imp->imp_lock); + + ptlrpc_invalidate_import(imp); } /* When activating, mark import valid, and attempt recovery */ if (active) { - spin_lock(&imp->imp_lock); - imp->imp_deactive = 0; - spin_unlock(&imp->imp_lock); - CDEBUG(D_HA, "setting import %s VALID\n", obd2cli_tgt(imp->imp_obd)); rc = ptlrpc_recover_import(imp, NULL); @@ -272,6 +271,13 @@ int ptlrpc_recover_import(struct obd_import *imp, char *new_uuid) int rc; ENTRY; + spin_lock(&imp->imp_lock); + if (atomic_read(&imp->imp_inval_count)) { + spin_unlock(&imp->imp_lock); + RETURN(-EINVAL); + } + spin_unlock(&imp->imp_lock); + /* force import to be disconnected. */ ptlrpc_set_import_discon(imp, 0);