aboutsummaryrefslogtreecommitdiffstats
path: root/fs/gfs2/bmap.c
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2012-04-12 09:19:30 -0400
committerSteven Whitehouse <swhiteho@redhat.com>2012-04-24 11:44:33 -0400
commit2f7ee358e5a0fedcb45c64bd83dad9dc9a212508 (patch)
treee164ccdd0ed95390bbdd2df8d5382303e307a77c /fs/gfs2/bmap.c
parent9598d25ed9b2fc0c36ed47e759c998303fd89503 (diff)
GFS2: Use variable rather than qa to determine if unstuff necessary
In the future, the qadata structure will be eliminated and merged back in with the block reservation structure, after we extend the lifespan of that. This patch is a step forward in eliminating the qadata structure. It adds a variable to the do_grow function to determine when unstuffing is necessary, and has been done. Signed-off-by: Bob Peterson <rpeterso@redhat.com> Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/bmap.c')
-rw-r--r--fs/gfs2/bmap.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 03c04febe26f..420bbeb86147 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -1169,6 +1169,7 @@ static int do_grow(struct inode *inode, u64 size)
1169 struct buffer_head *dibh; 1169 struct buffer_head *dibh;
1170 struct gfs2_qadata *qa = NULL; 1170 struct gfs2_qadata *qa = NULL;
1171 int error; 1171 int error;
1172 int unstuff = 0;
1172 1173
1173 if (gfs2_is_stuffed(ip) && 1174 if (gfs2_is_stuffed(ip) &&
1174 (size > (sdp->sd_sb.sb_bsize - sizeof(struct gfs2_dinode)))) { 1175 (size > (sdp->sd_sb.sb_bsize - sizeof(struct gfs2_dinode)))) {
@@ -1183,13 +1184,14 @@ static int do_grow(struct inode *inode, u64 size)
1183 error = gfs2_inplace_reserve(ip, 1); 1184 error = gfs2_inplace_reserve(ip, 1);
1184 if (error) 1185 if (error)
1185 goto do_grow_qunlock; 1186 goto do_grow_qunlock;
1187 unstuff = 1;
1186 } 1188 }
1187 1189
1188 error = gfs2_trans_begin(sdp, RES_DINODE + RES_STATFS + RES_RG_BIT, 0); 1190 error = gfs2_trans_begin(sdp, RES_DINODE + RES_STATFS + RES_RG_BIT, 0);
1189 if (error) 1191 if (error)
1190 goto do_grow_release; 1192 goto do_grow_release;
1191 1193
1192 if (qa) { 1194 if (unstuff) {
1193 error = gfs2_unstuff_dinode(ip, NULL); 1195 error = gfs2_unstuff_dinode(ip, NULL);
1194 if (error) 1196 if (error)
1195 goto do_end_trans; 1197 goto do_end_trans;
@@ -1208,7 +1210,7 @@ static int do_grow(struct inode *inode, u64 size)
1208do_end_trans: 1210do_end_trans:
1209 gfs2_trans_end(sdp); 1211 gfs2_trans_end(sdp);
1210do_grow_release: 1212do_grow_release:
1211 if (qa) { 1213 if (unstuff) {
1212 gfs2_inplace_release(ip); 1214 gfs2_inplace_release(ip);
1213do_grow_qunlock: 1215do_grow_qunlock:
1214 gfs2_quota_unlock(ip); 1216 gfs2_quota_unlock(ip);