Whamcloud - gitweb
git://git.whamcloud.com
/
fs
/
lustre-release.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
LU-14187 osd-ldiskfs: fix locking in write commit
[fs/lustre-release.git]
/
lustre
/
include
/
lustre_osc.h
diff --git
a/lustre/include/lustre_osc.h
b/lustre/include/lustre_osc.h
index
95edabc
..
de848ae
100644
(file)
--- 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_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;
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)
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)
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),
* 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);
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,
/* osc_lock.c */
void osc_lock_to_lockless(const struct lu_env *env, struct osc_lock *ols,