Lines Matching refs:gl
134 void (*lm_put_lock) (struct gfs2_glock *gl);
135 int (*lm_lock) (struct gfs2_glock *gl, unsigned int req_state,
137 void (*lm_cancel) (struct gfs2_glock *gl);
142 static inline struct gfs2_holder *gfs2_glock_is_locked_by_me(struct gfs2_glock *gl) in gfs2_glock_is_locked_by_me() argument
148 spin_lock(&gl->gl_lockref.lock); in gfs2_glock_is_locked_by_me()
150 list_for_each_entry(gh, &gl->gl_holders, gh_list) { in gfs2_glock_is_locked_by_me()
158 spin_unlock(&gl->gl_lockref.lock); in gfs2_glock_is_locked_by_me()
163 static inline int gfs2_glock_is_held_excl(struct gfs2_glock *gl) in gfs2_glock_is_held_excl() argument
165 return gl->gl_state == LM_ST_EXCLUSIVE; in gfs2_glock_is_held_excl()
168 static inline int gfs2_glock_is_held_dfrd(struct gfs2_glock *gl) in gfs2_glock_is_held_dfrd() argument
170 return gl->gl_state == LM_ST_DEFERRED; in gfs2_glock_is_held_dfrd()
173 static inline int gfs2_glock_is_held_shrd(struct gfs2_glock *gl) in gfs2_glock_is_held_shrd() argument
175 return gl->gl_state == LM_ST_SHARED; in gfs2_glock_is_held_shrd()
178 static inline struct address_space *gfs2_glock2aspace(struct gfs2_glock *gl) in gfs2_glock2aspace() argument
180 if (gl->gl_ops->go_flags & GLOF_ASPACE) in gfs2_glock2aspace()
181 return (struct address_space *)(gl + 1); in gfs2_glock2aspace()
188 extern void gfs2_glock_hold(struct gfs2_glock *gl);
189 extern void gfs2_glock_put(struct gfs2_glock *gl);
190 extern void gfs2_glock_queue_put(struct gfs2_glock *gl);
191 extern void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state,
209 extern void gfs2_dump_glock(struct seq_file *seq, struct gfs2_glock *gl,
211 #define GLOCK_BUG_ON(gl,x) do { if (unlikely(x)) { \ argument
212 gfs2_dump_glock(NULL, gl, true); \
214 #define gfs2_glock_assert_warn(gl, x) do { if (unlikely(!(x))) { \ argument
215 gfs2_dump_glock(NULL, gl, true); \
216 gfs2_assert_warn((gl)->gl_name.ln_sbd, (x)); } } \
218 #define gfs2_glock_assert_withdraw(gl, x) do { if (unlikely(!(x))) { \ argument
219 gfs2_dump_glock(NULL, gl, true); \
220 gfs2_assert_withdraw((gl)->gl_name.ln_sbd, (x)); } } \
236 static inline int gfs2_glock_nq_init(struct gfs2_glock *gl, in gfs2_glock_nq_init() argument
242 gfs2_holder_init(gl, state, flags, gh); in gfs2_glock_nq_init()
251 extern void gfs2_glock_cb(struct gfs2_glock *gl, unsigned int state);
252 extern void gfs2_glock_complete(struct gfs2_glock *gl, int ret);
253 extern bool gfs2_queue_delete_work(struct gfs2_glock *gl, unsigned long delay);
254 extern void gfs2_cancel_delete_work(struct gfs2_glock *gl);
255 extern bool gfs2_delete_work_queued(const struct gfs2_glock *gl);
260 extern void gfs2_glock_add_to_lru(struct gfs2_glock *gl);
261 extern void gfs2_glock_free(struct gfs2_glock *gl);
293 static inline void glock_set_object(struct gfs2_glock *gl, void *object) in glock_set_object() argument
295 spin_lock(&gl->gl_lockref.lock); in glock_set_object()
296 if (gfs2_assert_warn(gl->gl_name.ln_sbd, gl->gl_object == NULL)) in glock_set_object()
297 gfs2_dump_glock(NULL, gl, true); in glock_set_object()
298 gl->gl_object = object; in glock_set_object()
299 spin_unlock(&gl->gl_lockref.lock); in glock_set_object()
320 static inline void glock_clear_object(struct gfs2_glock *gl, void *object) in glock_clear_object() argument
322 spin_lock(&gl->gl_lockref.lock); in glock_clear_object()
323 if (gl->gl_object == object) in glock_clear_object()
324 gl->gl_object = NULL; in glock_clear_object()
325 spin_unlock(&gl->gl_lockref.lock); in glock_clear_object()
328 extern void gfs2_inode_remember_delete(struct gfs2_glock *gl, u64 generation);
329 extern bool gfs2_inode_already_deleted(struct gfs2_glock *gl, u64 generation);