diff options
Diffstat (limited to 'fs/gfs2/glock.h')
-rw-r--r-- | fs/gfs2/glock.h | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h index 2f9c6d136b37..cdad3e6f8150 100644 --- a/fs/gfs2/glock.h +++ b/fs/gfs2/glock.h | |||
@@ -32,24 +32,23 @@ | |||
32 | #define GLR_TRYFAILED 13 | 32 | #define GLR_TRYFAILED 13 |
33 | #define GLR_CANCELED 14 | 33 | #define GLR_CANCELED 14 |
34 | 34 | ||
35 | static inline int gfs2_glock_is_locked_by_me(struct gfs2_glock *gl) | 35 | static inline struct gfs2_holder *gfs2_glock_is_locked_by_me(struct gfs2_glock *gl) |
36 | { | 36 | { |
37 | struct gfs2_holder *gh; | 37 | struct gfs2_holder *gh; |
38 | int locked = 0; | ||
39 | struct pid *pid; | 38 | struct pid *pid; |
40 | 39 | ||
41 | /* Look in glock's list of holders for one with current task as owner */ | 40 | /* Look in glock's list of holders for one with current task as owner */ |
42 | spin_lock(&gl->gl_spin); | 41 | spin_lock(&gl->gl_spin); |
43 | pid = task_pid(current); | 42 | pid = task_pid(current); |
44 | list_for_each_entry(gh, &gl->gl_holders, gh_list) { | 43 | list_for_each_entry(gh, &gl->gl_holders, gh_list) { |
45 | if (gh->gh_owner_pid == pid) { | 44 | if (gh->gh_owner_pid == pid) |
46 | locked = 1; | 45 | goto out; |
47 | break; | ||
48 | } | ||
49 | } | 46 | } |
47 | gh = NULL; | ||
48 | out: | ||
50 | spin_unlock(&gl->gl_spin); | 49 | spin_unlock(&gl->gl_spin); |
51 | 50 | ||
52 | return locked; | 51 | return gh; |
53 | } | 52 | } |
54 | 53 | ||
55 | static inline int gfs2_glock_is_held_excl(struct gfs2_glock *gl) | 54 | static inline int gfs2_glock_is_held_excl(struct gfs2_glock *gl) |
@@ -79,7 +78,6 @@ static inline int gfs2_glock_is_blocking(struct gfs2_glock *gl) | |||
79 | int gfs2_glock_get(struct gfs2_sbd *sdp, | 78 | int gfs2_glock_get(struct gfs2_sbd *sdp, |
80 | u64 number, const struct gfs2_glock_operations *glops, | 79 | u64 number, const struct gfs2_glock_operations *glops, |
81 | int create, struct gfs2_glock **glp); | 80 | int create, struct gfs2_glock **glp); |
82 | void gfs2_glock_hold(struct gfs2_glock *gl); | ||
83 | int gfs2_glock_put(struct gfs2_glock *gl); | 81 | int gfs2_glock_put(struct gfs2_glock *gl); |
84 | void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state, unsigned flags, | 82 | void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state, unsigned flags, |
85 | struct gfs2_holder *gh); | 83 | struct gfs2_holder *gh); |