diff options
-rw-r--r-- | fs/gfs2/bmap.c | 6 |
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) | |||
1208 | do_end_trans: | 1210 | do_end_trans: |
1209 | gfs2_trans_end(sdp); | 1211 | gfs2_trans_end(sdp); |
1210 | do_grow_release: | 1212 | do_grow_release: |
1211 | if (qa) { | 1213 | if (unstuff) { |
1212 | gfs2_inplace_release(ip); | 1214 | gfs2_inplace_release(ip); |
1213 | do_grow_qunlock: | 1215 | do_grow_qunlock: |
1214 | gfs2_quota_unlock(ip); | 1216 | gfs2_quota_unlock(ip); |