Whamcloud - gitweb
LU-1214 ptlrpc: removes client lu_target.h/target.c dependency
[fs/lustre-release.git] / lustre / include / obd_class.h
index df7cd84..433431f 100644 (file)
@@ -28,9 +28,8 @@
 /*
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
- */
-/*
- * Copyright (c) 2011 Whamcloud, Inc.
+ *
+ * Copyright (c) 2011, Whamcloud, Inc.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
 #error Unsupported operating system.
 #endif
 
+#define OBD_STATFS_NODELAY      0x0001  /* requests should be send without delay
+                                         * and resends for avoid deadlocks */
+#define OBD_STATFS_FROM_CACHE   0x0002  /* the statfs callback should not update
+                                         * obd_osfs_age */
+#define OBD_STATFS_PTLRPCD      0x0004  /* requests will be sent via ptlrpcd
+                                         * instead of a specific set. This
+                                         * means that we cannot rely on the set
+                                         * interpret routine to be called.
+                                         * lov_statfs_fini() must thus be called
+                                         * by the request interpret routine */
+
+#define OBD_FL_PUNCH    0x00000001      /* To indicate it is punch operation */
+
 /* OBD Device Declarations */
 extern struct obd_device *obd_devs[MAX_OBD_DEVICES];
 extern cfs_rwlock_t obd_dev_lock;
@@ -157,20 +169,28 @@ int class_config_parse_llog(struct llog_ctxt *ctxt, char *name,
 int class_config_dump_llog(struct llog_ctxt *ctxt, char *name,
                            struct config_llog_instance *cfg);
 
+enum {
+        CONFIG_T_CONFIG  = 0,
+        CONFIG_T_SPTLRPC = 1,
+        CONFIG_T_RECOVER = 2,
+        CONFIG_T_MAX     = 3
+};
+
 /* list of active configuration logs  */
 struct config_llog_data {
-        char                       *cld_logname;
         struct ldlm_res_id          cld_resid;
         struct config_llog_instance cld_cfg;
         cfs_list_t                  cld_list_chain;
         cfs_atomic_t                cld_refcount;
         struct config_llog_data    *cld_sptlrpc;/* depended sptlrpc log */
+        struct config_llog_data    *cld_recover;    /* imperative recover log */
         struct obd_export          *cld_mgcexp;
         cfs_mutex_t                 cld_lock;
+        int                         cld_type;
         unsigned int                cld_stopping:1, /* we were told to stop
                                                      * watching */
-                                    cld_lostlock:1, /* lock not requeued */
-                                    cld_is_sptlrpc:1;
+                                    cld_lostlock:1; /* lock not requeued */
+        char                        cld_logname[0];
 };
 
 struct lustre_profile {
@@ -282,6 +302,7 @@ static inline enum obd_option exp_flags_from_obd(struct obd_device *obd)
                 0);
 }
 
+#ifdef HAVE_SERVER_SUPPORT
 static inline struct lu_target *class_exp2tgt(struct obd_export *exp)
 {
         LASSERT(exp->exp_obd);
@@ -293,6 +314,7 @@ static inline struct lr_server_data *class_server_data(struct obd_device *obd)
         LASSERT(obd->u.obt.obt_lut);
         return &obd->u.obt.obt_lut->lut_lsd;
 }
+#endif
 
 void obdo_cpy_md(struct obdo *dst, struct obdo *src, obd_flag valid);
 void obdo_to_ioobj(struct obdo *oa, struct obd_ioobj *ioobj);
@@ -637,7 +659,7 @@ static inline void obd_cleanup_client_import(struct obd_device *obd)
                         ptlrpc_free_rq_pool(imp->imp_rq_pool);
                         imp->imp_rq_pool = NULL;
                 }
-                class_destroy_import(imp);
+                client_destroy_import(imp);
                 obd->u.cli.cl_import = NULL;
         }
         cfs_up_write(&obd->u.cli.cl_sem);
@@ -2026,17 +2048,15 @@ static inline int md_sync(struct obd_export *exp, const struct lu_fid *fid,
         RETURN(rc);
 }
 
-static inline int md_readpage(struct obd_export *exp, const struct lu_fid *fid,
-                              struct obd_capa *oc, __u64 offset,
-                              struct page **pages, unsigned npages,
+static inline int md_readpage(struct obd_export *exp, struct md_op_data *opdata,
+                              struct page **pages,
                               struct ptlrpc_request **request)
 {
         int rc;
         ENTRY;
         EXP_CHECK_MD_OP(exp, readpage);
         EXP_MD_COUNTER_INCREMENT(exp, readpage);
-        rc = MDP(exp->exp_obd, readpage)(exp, fid, oc, offset, pages, npages,
-                                         request);
+        rc = MDP(exp->exp_obd, readpage)(exp, opdata, pages, request);
         RETURN(rc);
 }
 
@@ -2122,7 +2142,7 @@ static inline int md_clear_open_replay_data(struct obd_export *exp,
 }
 
 static inline int md_set_lock_data(struct obd_export *exp,
-                                   __u64 *lockh, void *data, __u32 *bits)
+                                   __u64 *lockh, void *data, __u64 *bits)
 {
         ENTRY;
         EXP_CHECK_MD_OP(exp, set_lock_data);
@@ -2222,13 +2242,13 @@ static inline int md_intent_getattr_async(struct obd_export *exp,
 
 static inline int md_revalidate_lock(struct obd_export *exp,
                                      struct lookup_intent *it,
-                                     struct lu_fid *fid)
+                                     struct lu_fid *fid, __u64 *bits)
 {
         int rc;
         ENTRY;
         EXP_CHECK_MD_OP(exp, revalidate_lock);
         EXP_MD_COUNTER_INCREMENT(exp, revalidate_lock);
-        rc = MDP(exp->exp_obd, revalidate_lock)(exp, it, fid);
+        rc = MDP(exp->exp_obd, revalidate_lock)(exp, it, fid, bits);
         RETURN(rc);
 }
 
@@ -2280,6 +2300,7 @@ void class_uuid_unparse(class_uuid_t in, struct obd_uuid *out);
 int lustre_uuid_to_peer(const char *uuid, lnet_nid_t *peer_nid, int index);
 int class_add_uuid(const char *uuid, __u64 nid);
 int class_del_uuid (const char *uuid);
+int class_check_uuid(struct obd_uuid *uuid, __u64 nid);
 void class_init_uuidlist(void);
 void class_exit_uuidlist(void);