*
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 896ec9d..ac2d2aa 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -931,6 +931,12 @@ gfs2_alloc_data_blocks(struct inode *inode, struct metapath *mp,
int ret;
if (!ap->count) {
+ /*
+ * XXX When we were unstuffing, the file isn't empty, and we
+ * are reading from the first block, don't do another
+ * allocation here because the first block would then end up in
+ * a separate extent!
+ */
ret = gfs2_alloc_blocks(ip, ap);
if (ret)
return ret;
@@ -1377,6 +1383,7 @@ gfs2_iomap_write_alloc(struct inode *inode,
ind_blocks = max_indirect_blocks(inode, mp->mp_fheight, start, data_blocks);
unstuff_block = gfs2_is_stuffed(ip) && i_size_read(inode) && start > 0;
ap.target = unstuff_block + data_blocks + ind_blocks;
+ /* XXX Also set ap.min_target reasonably? */
ret = gfs2_quota_lock_check(ip, &ap);
if (ret)
goto out;