diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2006-04-20 16:57:23 -0400 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2006-04-20 16:57:23 -0400 |
commit | 190562bd84a484bf6590425aa2bb4d6d611c112b (patch) | |
tree | dd99bcd847f8d2376f7836ea9d861a31d1021c71 /fs/gfs2/glock.h | |
parent | fe1bdedc6c16adedc6fd3636185ea91596b1d6eb (diff) |
[GFS2] Fix a bug: scheduling under a spinlock
At some stage, a mutex was added to gfs2_glock_put() without
checking all its call sites. Two of them were called from
under a spinlock causing random delays at various points and
crashes.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/glock.h')
-rw-r--r-- | fs/gfs2/glock.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h index b6646e7fed15..ed5bc3e65397 100644 --- a/fs/gfs2/glock.h +++ b/fs/gfs2/glock.h | |||
@@ -81,10 +81,10 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, | |||
81 | int create, struct gfs2_glock **glp); | 81 | int create, struct gfs2_glock **glp); |
82 | void gfs2_glock_hold(struct gfs2_glock *gl); | 82 | void gfs2_glock_hold(struct gfs2_glock *gl); |
83 | int gfs2_glock_put(struct gfs2_glock *gl); | 83 | int gfs2_glock_put(struct gfs2_glock *gl); |
84 | 84 | void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state, unsigned flags, | |
85 | void gfs2_holder_init(struct gfs2_glock *gl, unsigned int state, int flags, | ||
86 | struct gfs2_holder *gh); | 85 | struct gfs2_holder *gh); |
87 | void gfs2_holder_reinit(unsigned int state, int flags, struct gfs2_holder *gh); | 86 | void gfs2_holder_reinit(unsigned int state, unsigned flags, |
87 | struct gfs2_holder *gh); | ||
88 | void gfs2_holder_uninit(struct gfs2_holder *gh); | 88 | void gfs2_holder_uninit(struct gfs2_holder *gh); |
89 | struct gfs2_holder *gfs2_holder_get(struct gfs2_glock *gl, unsigned int state, | 89 | struct gfs2_holder *gfs2_holder_get(struct gfs2_glock *gl, unsigned int state, |
90 | int flags, gfp_t gfp_flags); | 90 | int flags, gfp_t gfp_flags); |