struct config_llog_data *cld;
        struct config_llog_data *sptlrpc_cld;
        struct config_llog_data *params_cld;
-       bool locked = false;
+       struct config_llog_data *recover_cld = NULL;
        char                    seclogname[32];
        char                    *ptr;
        int                     rc;
                goto out_params;
        }
 
-       cld->cld_sptlrpc = sptlrpc_cld;
-       cld->cld_params = params_cld;
-
        LASSERT(lsi->lsi_lmd);
        if (!(lsi->lsi_lmd->lmd_flags & LMD_FLG_NOIR)) {
-               struct config_llog_data *recover_cld;
-
                ptr = strrchr(seclogname, '-');
                if (ptr) {
                        *ptr = 0;
                } else {
                        CERROR("%s: sptlrpc log name not correct, %s: rc = %d\n",
                               obd->obd_name, seclogname, -EINVAL);
-                       config_log_put(cld);
                        rc = -EINVAL;
                        goto out_cld;
                }
                        rc = PTR_ERR(recover_cld);
                        goto out_cld;
                }
-
-               mutex_lock(&cld->cld_lock);
-               locked = true;
-               cld->cld_recover = recover_cld;
        }
 
-       if (!locked)
-               mutex_lock(&cld->cld_lock);
+       mutex_lock(&cld->cld_lock);
+       cld->cld_recover = recover_cld;
        cld->cld_params = params_cld;
        cld->cld_sptlrpc = sptlrpc_cld;
        mutex_unlock(&cld->cld_lock);