Whamcloud - gitweb
Branch: HEAD
[fs/lustre-release.git] / lustre / include / linux / obd_class.h
index 2c1e13c..3c54d3c 100644 (file)
@@ -84,10 +84,12 @@ int oig_wait(struct obd_io_group *oig);
 int class_process_config(struct lustre_cfg *lcfg);
 
 /* Passed as data param to class_config_parse_handler() */
+#define CFG_MODIFY_UUID_FL 0x00001
 struct config_llog_instance {
-        char * cfg_instance;
+        char *cfg_instance;
         struct obd_uuid cfg_uuid;
         ptl_nid_t cfg_local_nid;
+        int  cfg_flags;
 };
 
 int class_config_process_llog(struct llog_ctxt *ctxt, char *name,
@@ -100,6 +102,7 @@ struct lustre_profile {
         char *lp_profile;
         char *lp_lov;
         char *lp_lmv;
+        char *lp_gkc;
 };
 
 struct lustre_profile *class_get_profile(char * prof);
@@ -154,8 +157,10 @@ void class_put_type(struct obd_type *type);
 int class_connect(struct lustre_handle *conn, struct obd_device *obd,
                   struct obd_uuid *cluuid);
 int class_disconnect(struct obd_export *exp, unsigned long flags);
-void class_disconnect_exports(struct obd_device *obddev, unsigned long flags);
-void class_disconnect_stale_exports(struct obd_device *obddev, unsigned long flags);
+void class_disconnect_exports(struct obd_device *, unsigned long);
+int class_disconnect_stale_exports(struct obd_device *,
+                                   int (*test_export)(struct obd_export *), 
+                                   unsigned long);
 
 /* generic operations shared by various OBD types */
 int class_multi_setup(struct obd_device *obddev, uint32_t len, void *data);
@@ -493,6 +498,7 @@ static inline int obd_revalidate_md(struct obd_export *exp, struct obdo *obdo,
 }
 
 static inline int obd_create(struct obd_export *exp, struct obdo *obdo,
+                             void *acl, int acl_size,
                              struct lov_stripe_md **ea,
                              struct obd_trans_info *oti)
 {
@@ -502,7 +508,7 @@ static inline int obd_create(struct obd_export *exp, struct obdo *obdo,
         EXP_CHECK_OP(exp, create);
         OBD_COUNTER_INCREMENT(exp->exp_obd, create);
 
-        rc = OBP(exp->exp_obd, create)(exp, obdo, ea, oti);
+        rc = OBP(exp->exp_obd, create)(exp, obdo, acl, acl_size, ea, oti);
         RETURN(rc);
 }
 
@@ -549,7 +555,8 @@ static inline int obd_getattr_async(struct obd_export *exp,
 
 static inline int obd_setattr(struct obd_export *exp, struct obdo *obdo,
                               struct lov_stripe_md *ea,
-                              struct obd_trans_info *oti)
+                              struct obd_trans_info *oti,
+                              struct lustre_capa *capa)
 {
         int rc;
         ENTRY;
@@ -557,7 +564,7 @@ static inline int obd_setattr(struct obd_export *exp, struct obdo *obdo,
         EXP_CHECK_OP(exp, setattr);
         OBD_COUNTER_INCREMENT(exp->exp_obd, setattr);
 
-        rc = OBP(exp->exp_obd, setattr)(exp, obdo, ea, oti);
+        rc = OBP(exp->exp_obd, setattr)(exp, obdo, ea, oti, capa);
         RETURN(rc);
 }
 static inline int obd_add_conn(struct obd_import *imp, struct obd_uuid *uuid,
@@ -609,6 +616,7 @@ static inline int obd_connect(struct lustre_handle *conn,
 }
 
 static inline int obd_connect_post(struct obd_export *exp,
+                                   unsigned initial,
                                    unsigned long flags)
 {
         int rc;
@@ -618,7 +626,7 @@ static inline int obd_connect_post(struct obd_export *exp,
         if (!OBT(exp->exp_obd) || !OBP((exp->exp_obd), connect_post))
                 RETURN(0);
         OBD_COUNTER_INCREMENT(exp->exp_obd, connect_post);
-        rc = OBP(exp->exp_obd, connect_post)(exp, flags);
+        rc = OBP(exp->exp_obd, connect_post)(exp, initial, flags);
         RETURN(rc);
 }
 
@@ -635,17 +643,6 @@ static inline int obd_disconnect(struct obd_export *exp,
         RETURN(rc);
 }
 
-static inline int obd_getready(struct obd_export *exp)
-{
-        int rc;
-        ENTRY;
-
-        if (!OBP(exp->exp_obd, getready))
-                RETURN(0);
-        rc = OBP(exp->exp_obd, getready)(exp);
-        RETURN(rc);
-}
-
 static inline int obd_init_export(struct obd_export *exp)
 {
         int rc = 0;
@@ -729,7 +726,8 @@ static inline int obd_sync(struct obd_export *exp, struct obdo *oa,
 
 static inline int obd_punch(struct obd_export *exp, struct obdo *oa,
                             struct lov_stripe_md *ea, obd_size start,
-                            obd_size end, struct obd_trans_info *oti)
+                            obd_size end, struct obd_trans_info *oti,
+                            struct lustre_capa *capa)
 {
         int rc;
         ENTRY;
@@ -737,7 +735,7 @@ static inline int obd_punch(struct obd_export *exp, struct obdo *oa,
         EXP_CHECK_OP(exp, punch);
         OBD_COUNTER_INCREMENT(exp->exp_obd, punch);
 
-        rc = OBP(exp->exp_obd, punch)(exp, oa, ea, start, end, oti);
+        rc = OBP(exp->exp_obd, punch)(exp, oa, ea, start, end, oti, capa);
         RETURN(rc);
 }
 
@@ -889,7 +887,8 @@ static inline int obd_preprw(int cmd, struct obd_export *exp, struct obdo *oa,
                              int objcount, struct obd_ioobj *obj,
                              int niocount, struct niobuf_remote *remote,
                              struct niobuf_local *local,
-                             struct obd_trans_info *oti)
+                             struct obd_trans_info *oti,
+                             struct lustre_capa *capa)
 {
         int rc;
         ENTRY;
@@ -898,7 +897,7 @@ static inline int obd_preprw(int cmd, struct obd_export *exp, struct obdo *oa,
         OBD_COUNTER_INCREMENT(exp->exp_obd, preprw);
 
         rc = OBP(exp->exp_obd, preprw)(cmd, exp, oa, objcount, obj, niocount,
-                                       remote, local, oti);
+                                       remote, local, oti, capa);
         RETURN(rc);
 }
 
@@ -1184,14 +1183,29 @@ static inline int md_delete_inode(struct obd_export *exp,
 }
 
 static inline int md_getattr(struct obd_export *exp, struct lustre_id *id,
-                             __u64 valid, const char *ea_name, int ea_namelen,
-                             unsigned int ea_size, struct ptlrpc_request **request)
+                             __u64 valid, const char *xattr_name,
+                             const void *xattr_data, unsigned int xattr_datalen,
+                             unsigned int ea_size, struct obd_capa *ocapa,
+                             struct ptlrpc_request **request)
 {
         int rc;
         ENTRY;
         EXP_CHECK_MD_OP(exp, getattr);
         MD_COUNTER_INCREMENT(exp->exp_obd, getattr);
-        rc = MDP(exp->exp_obd, getattr)(exp, id, valid, ea_name, ea_namelen, ea_size, request);
+        rc = MDP(exp->exp_obd, getattr)(exp, id, valid, xattr_name,
+                                        xattr_data, xattr_datalen,
+                                        ea_size, ocapa, request);
+        RETURN(rc);
+}
+
+static inline int md_access_check(struct obd_export *exp, struct lustre_id *id,
+                                  struct ptlrpc_request **request)
+{
+        int rc;
+        ENTRY;
+        EXP_CHECK_MD_OP(exp, access_check);
+        MD_COUNTER_INCREMENT(exp->exp_obd, access_check);
+        rc = MDP(exp->exp_obd, access_check)(exp, id, request);
         RETURN(rc);
 }
 
@@ -1225,7 +1239,8 @@ static inline int md_change_cbdata_name(struct obd_export *exp,
         RETURN(rc);
 }
 
-static inline int md_close(struct obd_export *exp, struct obdo *obdo,
+static inline int md_close(struct obd_export *exp,
+                           struct mdc_op_data *op_data,
                            struct obd_client_handle *och,
                            struct ptlrpc_request **request)
 {
@@ -1233,7 +1248,7 @@ static inline int md_close(struct obd_export *exp, struct obdo *obdo,
         ENTRY;
         EXP_CHECK_MD_OP(exp, close);
         MD_COUNTER_INCREMENT(exp->exp_obd, close);
-        rc = MDP(exp->exp_obd, close)(exp, obdo, och, request);
+        rc = MDP(exp->exp_obd, close)(exp, op_data, och, request);
         RETURN(rc);
 }
 
@@ -1298,7 +1313,8 @@ static inline int md_getattr_lock(struct obd_export *exp, struct lustre_id *id,
 static inline int md_intent_lock(struct obd_export *exp,
                                  struct lustre_id *pid, const char *name,
                                  int len, void *lmm, int lmmsize,
-                                 struct lustre_id *cid, struct lookup_intent *it,
+                                 struct lustre_id *cid,
+                                 struct lookup_intent *it,
                                  int flags, struct ptlrpc_request **reqp,
                                  ldlm_blocking_callback cb_blocking)
 {
@@ -1306,8 +1322,8 @@ static inline int md_intent_lock(struct obd_export *exp,
         ENTRY;
         EXP_CHECK_MD_OP(exp, intent_lock);
         MD_COUNTER_INCREMENT(exp->exp_obd, intent_lock);
-        rc = MDP(exp->exp_obd, intent_lock)(exp, pid, name, len,
-                                            lmm, lmmsize, cid, it, flags,
+        rc = MDP(exp->exp_obd, intent_lock)(exp, pid, name, len, lmm,
+                                            lmmsize, cid, it, flags,
                                             reqp, cb_blocking);
         RETURN(rc);
 }
@@ -1339,7 +1355,7 @@ static inline int md_rename(struct obd_export *exp, struct mdc_op_data *data,
 
 static inline int md_setattr(struct obd_export *exp, struct mdc_op_data *data,
                              struct iattr *iattr, void *ea, int ealen,
-                             void *ea2, int ea2len,
+                             void *ea2, int ea2len, void *ea3, int ea3len,
                              struct ptlrpc_request **request)
 {
         int rc;
@@ -1347,7 +1363,7 @@ static inline int md_setattr(struct obd_export *exp, struct mdc_op_data *data,
         EXP_CHECK_MD_OP(exp, setattr);
         MD_COUNTER_INCREMENT(exp->exp_obd, setattr);
         rc = MDP(exp->exp_obd, setattr)(exp, data, iattr, ea, ealen,
-                                        ea2, ea2len, request);
+                                        ea2, ea2len, ea3, ea3len, request);
         RETURN(rc);
 }