Whamcloud - gitweb
get rid of --smfs-enable options after merge in HEAD
[fs/lustre-release.git] / lustre / ptlbd / server.c
index f25b811..6a1f90b 100644 (file)
 
 static int ptlbd_sv_already_setup = 1;
 
+static int ptlbd_sv_attach(struct obd_device *obd, obd_count len, void *buf)
+{
+        struct lprocfs_static_vars lvars;
+
+        lprocfs_init_vars(ptlbd_sv, &lvars);
+        return lprocfs_obd_attach(obd, lvars.obd_vars);
+}
+
+static int ptlbd_sv_detach(struct obd_device *obd)
+{
+        return lprocfs_obd_detach(obd);
+}
+
 static int ptlbd_sv_setup(struct obd_device *obd, obd_count len, void *buf)
 {
         struct ptlbd_obd *ptlbd = &obd->u.ptlbd;
-        struct lprocfs_static_vars lvars;
         int rc;
         ENTRY;
 
@@ -49,9 +61,6 @@ static int ptlbd_sv_setup(struct obd_device *obd, obd_count len, void *buf)
         if ( IS_ERR(ptlbd->filp) )
                 RETURN(PTR_ERR(ptlbd->filp));
 
-        lprocfs_init_vars(ptlbd_sv, &lvars);
-        lprocfs_obd_setup(obd, lvars.obd_vars);
-
         ptlbd->ptlbd_service =
                 ptlrpc_init_svc(PTLBD_NBUFS, PTLBD_BUFSIZE, PTLBD_MAXREQSIZE,
                                 PTLBD_REQUEST_PORTAL, PTLBD_REPLY_PORTAL,
@@ -73,8 +82,6 @@ out_thread:
         ptlrpc_unregister_service(ptlbd->ptlbd_service);
 out_filp:
         filp_close(ptlbd->filp, NULL);
-        lprocfs_obd_cleanup(obd);
-
         RETURN(rc);
 }
 
@@ -84,21 +91,19 @@ static int ptlbd_sv_cleanup(struct obd_device *obd, int flags)
         ENTRY;
 
         /* XXX check for state */
-
         ptlrpc_stop_all_threads(ptlbd->ptlbd_service);
         ptlrpc_unregister_service(ptlbd->ptlbd_service);
         if ( ! IS_ERR(ptlbd->filp) )
                 filp_close(ptlbd->filp, NULL);
 
         ptlbd_sv_already_setup = 0;
-
-        lprocfs_obd_cleanup(obd);
-
         RETURN(0);
 }
 
 static struct obd_ops ptlbd_sv_obd_ops = {
         .o_owner        = THIS_MODULE,
+        .o_attach       = ptlbd_sv_attach,
+        .o_detach       = ptlbd_sv_detach,
         .o_setup        = ptlbd_sv_setup,
         .o_cleanup      = ptlbd_sv_cleanup,
         .o_connect      = class_connect,
@@ -114,7 +119,7 @@ int ptlbd_sv_init(void)
         struct lprocfs_static_vars lvars;
 
         lprocfs_init_vars(ptlbd_sv,&lvars);
-        return class_register_type(&ptlbd_sv_obd_ops, lvars.module_vars,
+        return class_register_type(&ptlbd_sv_obd_ops, NULL, lvars.module_vars,
                                    OBD_PTLBD_SV_DEVICENAME);
 }