Whamcloud - gitweb
LU-1067 obdecho: Recheck client env ctx for echo md client.
[fs/lustre-release.git] / lustre / include / cl_object.h
index cae226b..628bfbf 100644 (file)
@@ -1616,9 +1616,11 @@ struct cl_lock_slice {
  */
 enum cl_lock_transition {
         /** operation cannot be completed immediately. Wait for state change. */
-        CLO_WAIT   = 1,
+        CLO_WAIT        = 1,
         /** operation had to release lock mutex, restart. */
-        CLO_REPEAT = 2
+        CLO_REPEAT      = 2,
+        /** lower layer re-enqueued. */
+        CLO_REENQUEUED  = 3,
 };
 
 /**
@@ -2155,9 +2157,17 @@ enum cl_enq_flags {
          */
         CEF_NEVER        = 0x00000010,
         /**
+         * for async glimpse lock.
+         */
+        CEF_AGL          = 0x00000020,
+        /**
+         * do not trigger re-enqueue.
+         */
+        CEF_NO_REENQUEUE = 0x00000040,
+        /**
          * mask of enq_flags.
          */
-        CEF_MASK         = 0x0000001f
+        CEF_MASK         = 0x0000007f,
 };
 
 /**
@@ -2663,15 +2673,19 @@ static inline int cl_object_same(struct cl_object *o0, struct cl_object *o1)
  * @{ */
 enum {
         CLP_GANG_OKAY = 0,
+        CLP_GANG_RESCHED,
         CLP_GANG_AGAIN,
-        CLP_GANG_RESCHED
+        CLP_GANG_ABORT
 };
 
+/* callback of cl_page_gang_lookup() */
+typedef int   (*cl_page_gang_cb_t)  (const struct lu_env *, struct cl_io *,
+                                     struct cl_page *, void *);
 int             cl_page_gang_lookup (const struct lu_env *env,
                                      struct cl_object *obj,
                                      struct cl_io *io,
                                      pgoff_t start, pgoff_t end,
-                                     struct cl_page_list *plist);
+                                     cl_page_gang_cb_t cb, void *cbdata);
 struct cl_page *cl_page_lookup      (struct cl_object_header *hdr,
                                      pgoff_t index);
 struct cl_page *cl_page_find        (const struct lu_env *env,
@@ -3123,8 +3137,6 @@ void           cl_env_implant    (struct lu_env *env, int *refcheck);
 void           cl_env_unplant    (struct lu_env *env, int *refcheck);
 unsigned       cl_env_cache_purge(unsigned nr);
 
-void           cl_set_ctx_tags(__u32 tags);
-void           cl_set_ses_tags(__u32 tags);
 /** @} cl_env */
 
 /*