* @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
* @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)
} 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);
brelse(dibh);
if (ouid != NO_QUOTA_CHANGE || ogid != NO_QUOTA_CHANGE) {
- gfs2_quota_change(ip, -ip->i_di.di_blocks,
- ouid, ogid);
- gfs2_quota_change(ip, ip->i_di.di_blocks,
- nuid, ngid);
+ gfs2_quota_change(ip, -ip->i_di.di_blocks, ouid, ogid);
+ gfs2_quota_change(ip, ip->i_di.di_blocks, nuid, ngid);
}
out_end_trans: