diff --git a/[refs] b/[refs] index 67456b25effb..b06f46e4e4cb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 60836eb63b941f407dc2a609f3f0f34fd74ef6c3 +refs/heads/master: d707d31c972b657dfc2efefd0b99cc4e14223dab diff --git a/trunk/fs/ext2/balloc.c b/trunk/fs/ext2/balloc.c index 10bb02c3f25c..6dac7ba2d22d 100644 --- a/trunk/fs/ext2/balloc.c +++ b/trunk/fs/ext2/balloc.c @@ -1295,6 +1295,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, * turn off reservation for this allocation */ if (my_rsv && (free_blocks < windowsz) + && (free_blocks > 0) && (rsv_is_empty(&my_rsv->rsv_window))) my_rsv = NULL; @@ -1332,7 +1333,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, * free blocks is less than half of the reservation * window size. */ - if (free_blocks <= (windowsz/2)) + if (my_rsv && (free_blocks <= (windowsz/2))) continue; brelse(bitmap_bh);