Whamcloud - gitweb
LU-12296 llite: improve ll_dom_lock_cancel
[fs/lustre-release.git] / lustre / include / cl_object.h
index b4e5571..b13d1d0 100644 (file)
@@ -420,6 +420,13 @@ struct cl_object_operations {
        void (*coo_req_attr_set)(const struct lu_env *env,
                                 struct cl_object *obj,
                                 struct cl_req_attr *attr);
+       /**
+        * Flush \a obj data corresponding to \a lock. Used for DoM
+        * locks in llite's cancelling blocking ast callback.
+        */
+       int (*coo_object_flush)(const struct lu_env *env,
+                               struct cl_object *obj,
+                               struct ldlm_lock *lock);
 };
 
 /**
@@ -1900,7 +1907,11 @@ struct cl_io {
         * mirror is inaccessible, non-delay RPC would error out quickly so
         * that the upper layer can try to access the next mirror.
         */
-                            ci_ndelay:1;
+                            ci_ndelay:1,
+       /**
+        * Set if IO is triggered by async workqueue readahead.
+        */
+                            ci_async_readahead:1;
        /**
         * How many times the read has retried before this one.
         * Set by the top level and consumed by the LOV.
@@ -2100,6 +2111,9 @@ int cl_object_fiemap(const struct lu_env *env, struct cl_object *obj,
 int cl_object_layout_get(const struct lu_env *env, struct cl_object *obj,
                         struct cl_layout *cl);
 loff_t cl_object_maxbytes(struct cl_object *obj);
+int cl_object_flush(const struct lu_env *env, struct cl_object *obj,
+                   struct ldlm_lock *lock);
+
 
 /**
  * Returns true, iff \a o0 and \a o1 are slices of the same object.
@@ -2468,8 +2482,6 @@ struct cl_sync_io {
        atomic_t                csi_sync_nr;
        /** error code. */
        int                     csi_sync_rc;
-       /** barrier of destroy this structure */
-       atomic_t                csi_barrier;
        /** completion to be signaled when transfer is complete. */
        wait_queue_head_t       csi_waitq;
        /** callback to invoke when this IO is finished */