Whamcloud - gitweb
b=4336
[fs/lustre-release.git] / lustre / ptlbd / client.c
index 2ccf00e..4b1c5ad 100644 (file)
 #include <linux/lprocfs_status.h>
 #include <linux/obd_ptlbd.h>
 
+static int ptlbd_cl_attach(struct obd_device *obd, obd_count len, void *buf)
+{
+        struct lprocfs_static_vars lvars;
+
+        lprocfs_init_vars(ptlbd_cl, &lvars);
+        return lprocfs_obd_attach(obd, lvars.obd_vars);
+}
+
+static int ptlbd_cl_detach(struct obd_device *obd)
+{
+        return lprocfs_obd_detach(obd);
+}
+
 static int ptlbd_cl_setup(struct obd_device *obd, obd_count len, void *buf)
 {
         struct ptlbd_obd *ptlbd = &obd->u.ptlbd;
-        struct lprocfs_static_vars lvars;
-        struct obd_import *imp;
         struct lustre_cfg* lcfg = buf;
+        struct obd_import *imp;
         ENTRY;
 
         if (ptlbd->bd_import != NULL)
@@ -75,9 +87,6 @@ static int ptlbd_cl_setup(struct obd_device *obd, obd_count len, void *buf)
                lcfg->lcfg_inllen1);
         ptlbd_blk_register(ptlbd);
 
-        lprocfs_init_vars(ptlbd_cl, &lvars);
-        lprocfs_obd_setup(obd, lvars.obd_vars);
-
         RETURN(0);
 }
 
@@ -93,8 +102,6 @@ static int ptlbd_cl_cleanup(struct obd_device *obd, int flags)
         if (!imp->imp_connection)
                 RETURN(-ENOENT);
 
-        lprocfs_obd_cleanup(obd);
-
         ptlrpc_cleanup_client(imp);
         ptlrpc_put_connection(imp->imp_connection);
 
@@ -104,10 +111,9 @@ static int ptlbd_cl_cleanup(struct obd_device *obd, int flags)
         RETURN(0);
 }
 
-
 /* modelled after ptlrpc_import_connect() */
 int ptlbd_cl_connect(struct lustre_handle *conn, struct obd_device *obd,
-                     struct obd_uuid *target_uuid)
+                     struct obd_uuid *target_uuid, unsigned long connect_flags)
 {
         struct ptlbd_obd *ptlbd = &obd->u.ptlbd;
         struct obd_import *imp = ptlbd->bd_import;
@@ -191,11 +197,13 @@ out_req:
 
 
 static struct obd_ops ptlbd_cl_obd_ops = {
-        o_owner:        THIS_MODULE,
-        o_setup:        ptlbd_cl_setup,
-        o_cleanup:      ptlbd_cl_cleanup,
-        o_connect:      ptlbd_cl_connect,
-        o_disconnect:   ptlbd_cl_disconnect,
+        .o_owner        = THIS_MODULE,
+        .o_attach       = ptlbd_cl_attach,
+        .o_detach       = ptlbd_cl_detach,
+        .o_setup        = ptlbd_cl_setup,
+        .o_cleanup      = ptlbd_cl_cleanup,
+        .o_connect      = ptlbd_cl_connect,
+        .o_disconnect   = ptlbd_cl_disconnect,
 };
 
 static struct lprocfs_vars lprocfs_obd_vars[] = { {0} };
@@ -207,7 +215,7 @@ int ptlbd_cl_init(void)
         struct lprocfs_static_vars lvars;
 
         lprocfs_init_vars(ptlbd_cl,&lvars);
-        return class_register_type(&ptlbd_cl_obd_ops, lvars.module_vars,
+        return class_register_type(&ptlbd_cl_obd_ops, NULL, lvars.module_vars,
                                    OBD_PTLBD_CL_DEVICENAME);
 }
 
@@ -216,8 +224,6 @@ void ptlbd_cl_exit(void)
         class_unregister_type(OBD_PTLBD_CL_DEVICENAME);
 }
 
-
-
 int ptlbd_do_connect(struct ptlbd_obd *ptlbd)
 {
         int     rc;
@@ -226,7 +232,7 @@ int ptlbd_do_connect(struct ptlbd_obd *ptlbd)
         ENTRY;
 
         memset(&conn, 0, sizeof(conn));
-        rc = obd_connect(&conn, obd, &ptlbd->bd_server_uuid);
+        rc = obd_connect(&conn, obd, &ptlbd->bd_server_uuid, 0);
         if (rc < 0)
                 RETURN(rc);
         ptlbd->bd_exp = class_conn2export(&conn);