X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Finclude%2Flustre_osc.h;h=de848ae212d6e7e454c14ab305da8a69aa4ac798;hb=f0f92773ee18a9da71cd27e3b5c32e5d318ed0d2;hp=95edabc80bb73f943ad50287af2f3e37cec80455;hpb=a6798c5806088dc1892dd752012a54f0ec8f1798;p=fs%2Flustre-release.git diff --git a/lustre/include/lustre_osc.h b/lustre/include/lustre_osc.h index 95edabc..de848ae 100644 --- a/lustre/include/lustre_osc.h +++ b/lustre/include/lustre_osc.h @@ -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), }; /* @@ -694,6 +699,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,