summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHugh Dickins <hugh@veritas.com>2006-12-06 20:39:18 -0800
committerLinus Torvalds <torvalds@woody.osdl.org>2006-12-07 08:39:42 -0800
commitcd16c8f72aaaf2af06969d1441051b90010f7041 (patch)
treec40dcec3289d45f4fdd5656aced3c576c6edc8f5
parent126039256cf164f69d8cfa20f1952d00fa61f52f (diff)
[PATCH] ext4 balloc: reset windowsz when full
ext4_new_blocks should reset the reservation window size to 0 when squeezing the last blocks out of an almost full filesystem, so the retry doesn't skip any groups with less than half that free, reporting ENOSPC too soon. Signed-off-by: Mingming Cao <cmm@us.ibm.com> Signed-off-by: Hugh Dickins <hugh@veritas.com> Cc: <linux-ext4@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/ext4/balloc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
index 6bd0bd5bbdc..af3acf3c37b 100644
--- a/fs/ext4/balloc.c
+++ b/fs/ext4/balloc.c
@@ -1566,6 +1566,7 @@ retry_alloc:
*/
if (my_rsv) {
my_rsv = NULL;
+ windowsz = 0;
group_no = goal_group;
goto retry_alloc;
}