diff options
Diffstat (limited to 'fs/gfs2/glock.h')
| -rw-r--r-- | fs/gfs2/glock.h | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h index cdad3e6f8150..971d92af70fc 100644 --- a/fs/gfs2/glock.h +++ b/fs/gfs2/glock.h | |||
| @@ -26,11 +26,8 @@ | |||
| 26 | #define GL_SKIP 0x00000100 | 26 | #define GL_SKIP 0x00000100 |
| 27 | #define GL_ATIME 0x00000200 | 27 | #define GL_ATIME 0x00000200 |
| 28 | #define GL_NOCACHE 0x00000400 | 28 | #define GL_NOCACHE 0x00000400 |
| 29 | #define GL_FLOCK 0x00000800 | ||
| 30 | #define GL_NOCANCEL 0x00001000 | ||
| 31 | 29 | ||
| 32 | #define GLR_TRYFAILED 13 | 30 | #define GLR_TRYFAILED 13 |
| 33 | #define GLR_CANCELED 14 | ||
| 34 | 31 | ||
| 35 | static inline struct gfs2_holder *gfs2_glock_is_locked_by_me(struct gfs2_glock *gl) | 32 | static inline struct gfs2_holder *gfs2_glock_is_locked_by_me(struct gfs2_glock *gl) |
| 36 | { | 33 | { |
| @@ -41,6 +38,8 @@ static inline struct gfs2_holder *gfs2_glock_is_locked_by_me(struct gfs2_glock * | |||
| 41 | spin_lock(&gl->gl_spin); | 38 | spin_lock(&gl->gl_spin); |
| 42 | pid = task_pid(current); | 39 | pid = task_pid(current); |
| 43 | list_for_each_entry(gh, &gl->gl_holders, gh_list) { | 40 | list_for_each_entry(gh, &gl->gl_holders, gh_list) { |
| 41 | if (!test_bit(HIF_HOLDER, &gh->gh_iflags)) | ||
| 42 | break; | ||
| 44 | if (gh->gh_owner_pid == pid) | 43 | if (gh->gh_owner_pid == pid) |
| 45 | goto out; | 44 | goto out; |
| 46 | } | 45 | } |
| @@ -70,7 +69,7 @@ static inline int gfs2_glock_is_blocking(struct gfs2_glock *gl) | |||
| 70 | { | 69 | { |
| 71 | int ret; | 70 | int ret; |
| 72 | spin_lock(&gl->gl_spin); | 71 | spin_lock(&gl->gl_spin); |
| 73 | ret = test_bit(GLF_DEMOTE, &gl->gl_flags) || !list_empty(&gl->gl_waiters3); | 72 | ret = test_bit(GLF_DEMOTE, &gl->gl_flags); |
| 74 | spin_unlock(&gl->gl_spin); | 73 | spin_unlock(&gl->gl_spin); |
| 75 | return ret; | 74 | return ret; |
| 76 | } | 75 | } |
| @@ -98,6 +97,7 @@ int gfs2_glock_nq_num(struct gfs2_sbd *sdp, | |||
| 98 | int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs); | 97 | int gfs2_glock_nq_m(unsigned int num_gh, struct gfs2_holder *ghs); |
| 99 | void gfs2_glock_dq_m(unsigned int num_gh, struct gfs2_holder *ghs); | 98 | void gfs2_glock_dq_m(unsigned int num_gh, struct gfs2_holder *ghs); |
| 100 | void gfs2_glock_dq_uninit_m(unsigned int num_gh, struct gfs2_holder *ghs); | 99 | void gfs2_glock_dq_uninit_m(unsigned int num_gh, struct gfs2_holder *ghs); |
| 100 | void gfs2_print_dbg(struct seq_file *seq, const char *fmt, ...); | ||
| 101 | 101 | ||
| 102 | /** | 102 | /** |
| 103 | * gfs2_glock_nq_init - intialize a holder and enqueue it on a glock | 103 | * gfs2_glock_nq_init - intialize a holder and enqueue it on a glock |
| @@ -130,10 +130,9 @@ int gfs2_lvb_hold(struct gfs2_glock *gl); | |||
| 130 | void gfs2_lvb_unhold(struct gfs2_glock *gl); | 130 | void gfs2_lvb_unhold(struct gfs2_glock *gl); |
| 131 | 131 | ||
| 132 | void gfs2_glock_cb(void *cb_data, unsigned int type, void *data); | 132 | void gfs2_glock_cb(void *cb_data, unsigned int type, void *data); |
| 133 | |||
| 134 | void gfs2_glock_schedule_for_reclaim(struct gfs2_glock *gl); | 133 | void gfs2_glock_schedule_for_reclaim(struct gfs2_glock *gl); |
| 135 | void gfs2_reclaim_glock(struct gfs2_sbd *sdp); | 134 | void gfs2_reclaim_glock(struct gfs2_sbd *sdp); |
| 136 | void gfs2_gl_hash_clear(struct gfs2_sbd *sdp, int wait); | 135 | void gfs2_gl_hash_clear(struct gfs2_sbd *sdp); |
| 137 | 136 | ||
| 138 | int __init gfs2_glock_init(void); | 137 | int __init gfs2_glock_init(void); |
| 139 | void gfs2_glock_exit(void); | 138 | void gfs2_glock_exit(void); |
