diff options
Diffstat (limited to 'fs/gfs2/quota.c')
-rw-r--r-- | fs/gfs2/quota.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c index 6e546ee8f3d4..5dfa4656122b 100644 --- a/fs/gfs2/quota.c +++ b/fs/gfs2/quota.c | |||
@@ -614,6 +614,16 @@ static int gfs2_adjust_quota(struct gfs2_inode *ip, loff_t loc, | |||
614 | s64 value; | 614 | s64 value; |
615 | int err = -EIO; | 615 | int err = -EIO; |
616 | 616 | ||
617 | if (gfs2_is_stuffed(ip)) { | ||
618 | struct gfs2_alloc *al = NULL; | ||
619 | al = gfs2_alloc_get(ip); | ||
620 | /* just request 1 blk */ | ||
621 | al->al_requested = 1; | ||
622 | gfs2_inplace_reserve(ip); | ||
623 | gfs2_unstuff_dinode(ip, NULL); | ||
624 | gfs2_inplace_release(ip); | ||
625 | gfs2_alloc_put(ip); | ||
626 | } | ||
617 | page = grab_cache_page(mapping, index); | 627 | page = grab_cache_page(mapping, index); |
618 | if (!page) | 628 | if (!page) |
619 | return -ENOMEM; | 629 | return -ENOMEM; |