Whamcloud - gitweb
Merge from posix_stable.
authoradilger <adilger>
Fri, 21 Jun 2002 06:42:42 +0000 (06:42 +0000)
committeradilger <adilger>
Fri, 21 Jun 2002 06:42:42 +0000 (06:42 +0000)
lustre/ptlrpc/rpc.c

index 220ab74..b9b46f8 100644 (file)
@@ -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);