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;
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,
+ PTLBD_REQUEST_PORTAL, PTLBD_REPLY_PORTAL, 30000,
ptlbd_handle, "ptlbd_sv",
obd->obd_proc_entry);
ptlrpc_unregister_service(ptlbd->ptlbd_service);
out_filp:
filp_close(ptlbd->filp, NULL);
- lprocfs_obd_cleanup(obd);
-
RETURN(rc);
}
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;
+ RETURN(0);
+}
- lprocfs_obd_cleanup(obd);
+static int ptlbd_connect(struct lustre_handle *conn, struct obd_device *obd,
+ struct obd_uuid *cluuid, unsigned long connect_flags)
+{
+ int rc;
- RETURN(0);
+ rc = class_connect(conn, obd, cluuid);
+ RETURN(rc);
}
static struct obd_ops ptlbd_sv_obd_ops = {
- o_owner: THIS_MODULE,
- o_setup: ptlbd_sv_setup,
- o_cleanup: ptlbd_sv_cleanup,
- o_connect: class_connect,
- o_disconnect: class_disconnect,
+ .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 = ptlbd_connect,
+ .o_disconnect = class_disconnect,
};
static struct lprocfs_vars lprocfs_obd_vars[] = { {0} };
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);
}