From 007c14af30fecae5038046d1ae80819364c5521a Mon Sep 17 00:00:00 2001 From: Ilya Dryomov Date: Mon, 21 Jan 2013 15:15:56 +0200 Subject: [PATCH] --- yaml --- r: 349175 b: refs/heads/master c: a105bb88f46b60de2adf1ee98745bd59362b09ab h: refs/heads/master i: 349173: 87c6421c0983b48baaae7532f80cbb2e2f715b8e 349171: 76f598ea15cb84fe0010d2fc3ad069b2406c14be 349167: 8da8d71c18b269d26372ed426232564f24266c6f v: v3 --- [refs] | 2 +- trunk/fs/btrfs/volumes.c | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index ea31d5392980..c45959cc1a28 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 83bfccb5c085658b0ad1450a6fc13b0bb5440970 +refs/heads/master: a105bb88f46b60de2adf1ee98745bd59362b09ab diff --git a/trunk/fs/btrfs/volumes.c b/trunk/fs/btrfs/volumes.c index 9c84dbe64f18..469609838913 100644 --- a/trunk/fs/btrfs/volumes.c +++ b/trunk/fs/btrfs/volumes.c @@ -2614,7 +2614,14 @@ static int chunk_usage_filter(struct btrfs_fs_info *fs_info, u64 chunk_offset, cache = btrfs_lookup_block_group(fs_info, chunk_offset); chunk_used = btrfs_block_group_used(&cache->item); - user_thresh = div_factor_fine(cache->key.offset, bargs->usage); + if (bargs->usage == 0) + user_thresh = 0; + else if (bargs->usage > 100) + user_thresh = cache->key.offset; + else + user_thresh = div_factor_fine(cache->key.offset, + bargs->usage); + if (chunk_used < user_thresh) ret = 0;