gfs2: take jdata unstuff into account in do_grow
authorBob Peterson <rpeterso@redhat.com>
Tue, 18 Dec 2018 14:29:32 +0000 (08:29 -0600)
committerBob Peterson <rpeterso@redhat.com>
Tue, 18 Dec 2018 16:49:02 +0000 (10:49 -0600)
Before this patch, function do_grow would not reserve enough journal
blocks in the transaction to unstuff jdata files while growing them.
This patch adds the logic to add one more block if the file to grow
is jdata.

Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com>
fs/gfs2/bmap.c

index 5292e10aaa8055e65dd72214491a8030882bd2f0..02b2646d84b3a38d967a6811b35e911aab658681 100644 (file)
@@ -2084,6 +2084,8 @@ static int do_grow(struct inode *inode, u64 size)
        }
 
        error = gfs2_trans_begin(sdp, RES_DINODE + RES_STATFS + RES_RG_BIT +
+                                (unstuff &&
+                                 gfs2_is_jdata(ip) ? RES_JDATA : 0) +
                                 (sdp->sd_args.ar_quota == GFS2_QUOTA_OFF ?
                                  0 : RES_QUOTA), 0);
        if (error)