-
-static void osc_con2cl(struct obd_conn *conn, struct ptlrpc_client **cl,
- struct ptlrpc_connection **connection)
-{
- struct osc_obd *osc = &conn->oc_dev->u.osc;
- *cl = osc->osc_client;
- *connection = osc->osc_conn;
-}
-
-static void osc_con2dlmcl(struct obd_conn *conn, struct ptlrpc_client **cl,
- struct ptlrpc_connection **connection)
-{
- struct osc_obd *osc = &conn->oc_dev->u.osc;
- *cl = osc->osc_ldlm_client;
- *connection = osc->osc_conn;
-}
-
-static int osc_connect(struct obd_conn *conn)
-{
- struct ptlrpc_request *request;
- struct ptlrpc_client *cl;
- struct ptlrpc_connection *connection;
- struct ost_body *body;
- int rc, size = sizeof(*body);
- ENTRY;
-
- osc_con2cl(conn, &cl, &connection);
- request = ptlrpc_prep_req(cl, connection, OST_CONNECT, 0, NULL, NULL);
- if (!request)
- RETURN(-ENOMEM);
-
- request->rq_replen = lustre_msg_size(1, &size);
-
- rc = ptlrpc_queue_wait(request);
- rc = ptlrpc_check_status(request, rc);
- if (rc) {
- CERROR("%s failed: rc = %d\n", __FUNCTION__, rc);
- GOTO(out, rc);
- }
-
- body = lustre_msg_buf(request->rq_repmsg, 0);
- CDEBUG(D_INODE, "received connid %d\n", body->connid);
-
- conn->oc_id = body->connid;
- EXIT;
- out:
- ptlrpc_free_req(request);
- return rc;
-}
-
-static int osc_disconnect(struct obd_conn *conn)
-{
- struct ptlrpc_request *request;
- struct ptlrpc_client *cl;
- struct ptlrpc_connection *connection;
- struct ost_body *body;
- int rc, size = sizeof(*body);
- ENTRY;
-
- osc_con2cl(conn, &cl, &connection);
- request = ptlrpc_prep_req(cl, connection, OST_DISCONNECT, 1, &size,
- NULL);
- if (!request)
- RETURN(-ENOMEM);
-
- body = lustre_msg_buf(request->rq_reqmsg, 0);
- body->connid = conn->oc_id;
-
- request->rq_replen = lustre_msg_size(1, &size);
-
- rc = ptlrpc_queue_wait(request);
- GOTO(out, rc);
- out:
- ptlrpc_free_req(request);
- return rc;
-}
-
-static int osc_getattr(struct obd_conn *conn, struct obdo *oa)
+#include <linux/obd_lov.h>
+#include <linux/ctype.h>
+#include <linux/init.h>
+#include <linux/lustre_ha.h>
+#include <linux/obd_support.h> /* for OBD_FAIL_CHECK */
+#include <linux/lustre_lite.h> /* for ll_i2info */
+#include <portals/lib-types.h> /* for PTL_MD_MAX_IOV */
+#include <linux/lprocfs_status.h>
+
+extern lprocfs_vars_t status_var_nm_1[];
+extern lprocfs_vars_t status_class_var[];
+
+static int osc_getattr(struct lustre_handle *conn, struct obdo *oa,
+ struct lov_stripe_md *md)