staging: lustre: ldlm: Restore connect flags on failure
authorJeremy Filizetti <jeremy.filizetti@gmail.com>
Sun, 29 Jan 2017 00:04:36 +0000 (19:04 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Feb 2017 12:01:37 +0000 (13:01 +0100)
Restore connect flags on failure of ptlrpc_connect_import()
to prevent an LBUG due to flags mismatch.

Signed-off-by: Jeremy Filizetti <jeremy.filizetti@gmail.com>
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7185
Reviewed-on: http://review.whamcloud.com/16950
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Sebastien Buisson <sebastien.buisson@bull.net>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Signed-off-by: James Simmons <jsimmons@infradead.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/lustre/lustre/ldlm/ldlm_lib.c

index 95b8c76f70d0c7fc13a782217312d4b604aec785..3663c5cdb051fe4cdbddbf1a0ad0df89241998c9 100644 (file)
@@ -523,6 +523,8 @@ int client_connect_import(const struct lu_env *env,
 
        rc = ptlrpc_connect_import(imp);
        if (rc != 0) {
+               if (data && is_mdc)
+                       data->ocd_connect_flags &= ~OBD_CONNECT_MULTIMODRPCS;
                LASSERT(imp->imp_state == LUSTRE_IMP_DISCON);
                goto out_ldlm;
        }