2006-12-07 04:42:39

by Andrew Morton

[permalink] [raw]
Subject: [patch 273/354] ext4 balloc: reset windowsz when full

From: Hugh Dickins <[email protected]>

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 <[email protected]>
Signed-off-by: Hugh Dickins <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
---

fs/ext4/balloc.c | 1 +
1 file changed, 1 insertion(+)

diff -puN fs/ext4/balloc.c~ext4-balloc-reset-windowsz-when-full fs/ext4/balloc.c
--- a/fs/ext4/balloc.c~ext4-balloc-reset-windowsz-when-full
+++ a/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;
}
_