Btrfs: fix a regression in balance usage filter
PATCH 1/1 Btrfs: fix a regression in balance usage filter
Commit 3fed40cc ("Btrfs: cleanup duplicated division functions"), which was merged into 3.8-rc1, has introduced a regression by removing logic that was guarding us against bad user input. Bring it back.
Signed-off-by Ilya Dryomov <[email protected]>
--- fs/btrfs/volumes.c | 9 ++++++++- 1 files changed, 8 insertions(+), 1 deletions(-)
fs/btrfs/volumes.c +8 -1
@@ -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 ;
Signature · 1 line
1.7.9.1