int error;
 
        al = gfs2_alloc_get(ip);
+       if (!al)
+               return -ENOMEM;
 
        error = gfs2_quota_lock(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
                lblock = (size - 1) >> sdp->sd_sb.sb_bsize_shift;
 
        find_metapath(sdp, lblock, &mp, ip->i_height);
-       gfs2_alloc_get(ip);
+       if (!gfs2_alloc_get(ip))
+               return -ENOMEM;
 
        error = gfs2_quota_hold(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
 
        if (!ht)
                return -ENOMEM;
 
-       gfs2_alloc_get(dip);
+       if (!gfs2_alloc_get(dip)) {
+               error = -ENOMEM;
+               goto out;
+       }
 
        error = gfs2_quota_hold(dip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
-               goto out;
+               goto out_put;
 
        error = gfs2_rindex_hold(sdp, &dip->i_alloc->al_ri_gh);
        if (error)
        gfs2_glock_dq_uninit(&dip->i_alloc->al_ri_gh);
 out_qs:
        gfs2_quota_unhold(dip);
-out:
+out_put:
        gfs2_alloc_put(dip);
+out:
        kfree(ht);
        return error;
 }
 
        int error;
 
        al = gfs2_alloc_get(ip);
+       if (!al)
+               return -ENOMEM;
 
        error = gfs2_quota_hold(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
        int error;
 
        al = gfs2_alloc_get(ip);
+       if (!al)
+               return -ENOMEM;
 
        error = gfs2_quota_lock(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
        int error;
 
        al = gfs2_alloc_get(ip);
+       if (!al)
+               return -ENOMEM;
 
        error = gfs2_quota_hold(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
 
        }
 
        al = gfs2_alloc_get(ip);
+       if (!al)
+               return -ENOMEM;
 
        error = gfs2_quota_hold(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
        int error;
 
        munge_mode_uid_gid(dip, &mode, &uid, &gid);
-       gfs2_alloc_get(dip);
+       if (!gfs2_alloc_get(dip))
+               return -ENOMEM;
 
        error = gfs2_quota_lock(dip, uid, gid);
        if (error)
        int error;
 
        al = gfs2_alloc_get(dip);
+       if (!al)
+               return -ENOMEM;
 
        error = gfs2_quota_lock(dip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
 
 
        if (alloc_required) {
                al = gfs2_alloc_get(ip);
+               if (!al) {
+                       error = -ENOMEM;
+                       goto out_unlock;
+               }
 
                error = gfs2_quota_lock(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
                if (error)
 
 
        if (alloc_required) {
                struct gfs2_alloc *al = gfs2_alloc_get(dip);
+               if (!al) {
+                       error = -ENOMEM;
+                       goto out_gunlock;
+               }
 
                error = gfs2_quota_lock(dip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
                if (error)
 
        if (alloc_required) {
                struct gfs2_alloc *al = gfs2_alloc_get(ndip);
+               if (!al) {
+                       error = -ENOMEM;
+                       goto out_gunlock;
+               }
 
                error = gfs2_quota_lock(ndip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
                if (error)
        if (!(attr->ia_valid & ATTR_GID) || ogid == ngid)
                ogid = ngid = NO_QUOTA_CHANGE;
 
-       gfs2_alloc_get(ip);
+       if (!gfs2_alloc_get(ip))
+               return -ENOMEM;
 
        error = gfs2_quota_lock(ip, nuid, ngid);
        if (error)
 
        int err = -EIO;
 
        if (gfs2_is_stuffed(ip)) {
-               struct gfs2_alloc *al = NULL;
-               al = gfs2_alloc_get(ip);
+               struct gfs2_alloc *al = gfs2_alloc_get(ip);
+               if (!al)
+                       return -ENOMEM;
                /* just request 1 blk */
                al->al_requested = 1;
                gfs2_inplace_reserve(ip);
 
        if (nalloc) {
                al = gfs2_alloc_get(ip);
+               if (!al) {
+                       error = -ENOMEM;
+                       goto out_gunlock;
+               }
 
                al->al_requested = nalloc * (data_blocks + ind_blocks);