From 00b7a86ac4208c03bd5f79d6369ce4ed94a6150e Mon Sep 17 00:00:00 2001 From: adilger Date: Fri, 21 Jun 2002 06:42:42 +0000 Subject: [PATCH] Merge from posix_stable. --- lustre/ptlrpc/rpc.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/lustre/ptlrpc/rpc.c b/lustre/ptlrpc/rpc.c index 220ab74..b9b46f8 100644 --- a/lustre/ptlrpc/rpc.c +++ b/lustre/ptlrpc/rpc.c @@ -35,45 +35,48 @@ int connmgr_setup(struct obd_device *obddev, obd_count len, void *buf) int err; ENTRY; + MOD_INC_USE_COUNT; memset(recovd, 0, sizeof(*recovd)); OBD_ALLOC(recovd->recovd_client, sizeof(*recovd->recovd_client)); if (!recovd) - RETURN(-ENOMEM); + GOTO(err_dev, err = -ENOMEM); err = recovd_setup(recovd); if (err) GOTO(err_free, err); - recovd->recovd_service = - ptlrpc_init_svc(128 * 1024,CONNMGR_REQUEST_PORTAL, - CONNMGR_REPLY_PORTAL, "self", connmgr_handle); + recovd->recovd_service = ptlrpc_init_svc(128 * 1024, + CONNMGR_REQUEST_PORTAL, + CONNMGR_REPLY_PORTAL, + "self", connmgr_handle); if (!recovd->recovd_service) { CERROR("failed to start service\n"); - GOTO(err_recovd, err = -EINVAL); + GOTO(err_recovd, err = -ENOMEM); } - ptlrpc_init_client(NULL, NULL, CONNMGR_REQUEST_PORTAL, + ptlrpc_init_client(NULL, NULL, CONNMGR_REQUEST_PORTAL, CONNMGR_REPLY_PORTAL, recovd->recovd_client); - recovd->recovd_client->cli_name = "connmgr"; + recovd->recovd_client->cli_name = "connmgr"; - err = ptlrpc_start_thread(obddev, recovd->recovd_service, "lustre_connmgr"); + err = ptlrpc_start_thread(obddev, recovd->recovd_service, + "lustre_connmgr"); if (err) { CERROR("cannot start thread\n"); GOTO(err_svc, err); } - MOD_INC_USE_COUNT; ptlrpc_connmgr = recovd; RETURN(0); - err_svc: +err_svc: rpc_unregister_service(recovd->recovd_service); - err_recovd: - recovd_cleanup(recovd); - err_free: - if (recovd->recovd_client) - OBD_FREE(recovd->recovd_client, sizeof(*recovd->recovd_client)); +err_recovd: + recovd_cleanup(recovd); +err_free: + OBD_FREE(recovd->recovd_client, sizeof(*recovd->recovd_client)); +err_dec: + MOD_DEC_USE_COUNT; RETURN(err); } @@ -82,8 +85,8 @@ int connmgr_cleanup(struct obd_device *dev) struct recovd_obd *recovd = &dev->u.recovd; int err; - err = recovd_cleanup(recovd); - if (err) + err = recovd_cleanup(recovd); + if (err) LBUG(); ptlrpc_stop_all_threads(recovd->recovd_service); -- 1.8.3.1