Whamcloud - gitweb
LU-14492 tests: sanity 27Cb skip condition
[fs/lustre-release.git] / lustre / include / lustre_osc.h
index 95edabc..ebce916 100644 (file)
@@ -169,6 +169,7 @@ struct osc_thread_info {
         */
        pgoff_t                 oti_next_index;
        pgoff_t                 oti_fn_index; /* first non-overlapped index */
+       pgoff_t                 oti_ng_index; /* negative lock caching */
        struct cl_sync_io       oti_anchor;
        struct cl_req_attr      oti_req_attr;
        struct lu_buf           oti_ladvise_buf;
@@ -185,7 +186,7 @@ static inline __u64 osc_enq2ldlm_flags(__u32 enqflags)
        if (enqflags & CEF_NONBLOCK)
                result |= LDLM_FL_BLOCK_NOWAIT;
        if (enqflags & CEF_GLIMPSE)
-               result |= LDLM_FL_HAS_INTENT;
+               result |= LDLM_FL_HAS_INTENT|LDLM_FL_CBPENDING;
        if (enqflags & CEF_DISCARD_DATA)
                result |= LDLM_FL_AST_DISCARD_DATA;
        if (enqflags & CEF_PEEK)
@@ -231,6 +232,10 @@ enum osc_dap_flags {
         * check ast data is present, requested to cancel cb
         */
        OSC_DAP_FL_AST       = BIT(2),
+       /**
+        * look at right region for the desired lock
+        */
+       OSC_DAP_FL_RIGHT     = BIT(3),
 };
 
 /*
@@ -674,6 +679,8 @@ int osc_io_commit_async(const struct lu_env *env,
                        const struct cl_io_slice *ios,
                        struct cl_page_list *qin, int from, int to,
                        cl_commit_cbt cb);
+void osc_io_extent_release(const struct lu_env *env,
+                          const struct cl_io_slice *ios);
 int osc_io_iter_init(const struct lu_env *env, const struct cl_io_slice *ios);
 void osc_io_iter_fini(const struct lu_env *env,
                      const struct cl_io_slice *ios);
@@ -694,6 +701,10 @@ int osc_fsync_ost(const struct lu_env *env, struct osc_object *obj,
 void osc_io_fsync_end(const struct lu_env *env,
                      const struct cl_io_slice *slice);
 void osc_read_ahead_release(const struct lu_env *env, void *cbdata);
+int osc_io_lseek_start(const struct lu_env *env,
+                      const struct cl_io_slice *slice);
+void osc_io_lseek_end(const struct lu_env *env,
+                     const struct cl_io_slice *slice);
 
 /* osc_lock.c */
 void osc_lock_to_lockless(const struct lu_env *env, struct osc_lock *ols,