[Cluster-devel] [GFS2 PATCH v2] gfs2: take jdata unstuff into account in do_grow

Bob Peterson rpeterso at redhat.com
Tue Dec 18 17:02:08 UTC 2018


Hi,

The previously posted patch works, but I decided it was better to add an
additional check for "unstuff" so it only requests the additional block
for the unstuffed jdata case where it's really needed.
---
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 at redhat.com>
---
 fs/gfs2/bmap.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 5292e10aaa80..02b2646d84b3 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -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)




More information about the Cluster-devel mailing list