diff options
Diffstat (limited to 'fs/gfs2/glock.c')
-rw-r--r-- | fs/gfs2/glock.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index 35bac90878a..dbeb4ad836b 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c @@ -416,7 +416,7 @@ void gfs2_holder_uninit(struct gfs2_holder *gh) * @gl: the glock * @state: the state we're requesting * @flags: the modifier flags - * @gfp_flags: __GFP_NOFAIL + * @gfp_flags: * * Figure out how big an impact this function has. Either: * 1) Replace it with a cache of structures hanging off the struct gfs2_sbd @@ -720,6 +720,7 @@ static void gfs2_glmutex_unlock(struct gfs2_glock *gl) * @gl: the glock * @state: the state the caller wants us to change to * + * Note: This may fail sliently if we are out of memory. */ static void handle_callback(struct gfs2_glock *gl, unsigned int state) @@ -744,8 +745,9 @@ restart: } else { spin_unlock(&gl->gl_spin); - new_gh = gfs2_holder_get(gl, state, LM_FLAG_TRY, - GFP_KERNEL | __GFP_NOFAIL), + new_gh = gfs2_holder_get(gl, state, LM_FLAG_TRY, GFP_KERNEL); + if (!new_gh) + return; set_bit(HIF_DEMOTE, &new_gh->gh_iflags); set_bit(HIF_DEALLOC, &new_gh->gh_iflags); |