MOD_INC_USE_COUNT;
rc = class_connect(conn, obd);
if (rc)
- GOTO(out, rc);
+ RETURN(rc);
request = ptlrpc_prep_req(mdc->mdc_client, mdc->mdc_conn,
MDS_CONNECT, 1, &size, &tmp);
if (!request)
- RETURN(-ENOMEM);
+ GOTO(out_disco, -ENOMEM);
request->rq_replen = lustre_msg_size(0, NULL);
mdc->mdc_connh.cookie = request->rq_repmsg->cookie;
EXIT;
+
out:
ptlrpc_free_req(request);
+ out_disco:
+ class_disconnect(conn);
if (rc)
MOD_DEC_USE_COUNT;
return rc;
if ( !type ) {
if ( !request_module(nm) ) {
CDEBUG(D_INFO, "Loaded module '%s'\n", nm);
- type = obd_search_type(nm);
+ type = class_search_type(nm);
} else {
CDEBUG(D_INFO, "Can't load module '%s'\n", nm);
}
if (tmp < 0 || tmp >= MAX_OBD_DEVICES) {
CERROR("Trying to sub dev %d - dev no too large\n",
tmp);
- GOTO(err_disconnect, rc);
+ GOTO(err_disconnect, rc = -EINVAL);
}
rc = obd_connect(&obddev->obd_multi_conn[count], &obd_dev[tmp]);
MOD_INC_USE_COUNT;
rc = class_connect(conn, obd);
if (rc)
- GOTO(out, rc);
+ RETURN(rc);
osc_obd2cl(obd, &cl, &connection);
request = ptlrpc_prep_req(osc->osc_client, osc->osc_conn,
OST_CONNECT, 1, &size, &tmp);
if (!request)
- RETURN(-ENOMEM);
+ GOTO(out_disco, -ENOMEM);
request->rq_replen = lustre_msg_size(0, NULL);
EXIT;
out:
ptlrpc_free_req(request);
+ out_disco:
+ class_disconnect(conn);
if (rc)
MOD_DEC_USE_COUNT;
return rc;