Commit f9ef6604 authored by Chris Mason's avatar Chris Mason

Btrfs: 32 bit compile fixes for the resizer and enospc checks

Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
parent 4313b399
...@@ -2501,6 +2501,7 @@ int btrfs_grow_extent_tree(struct btrfs_trans_handle *trans, ...@@ -2501,6 +2501,7 @@ int btrfs_grow_extent_tree(struct btrfs_trans_handle *trans,
u64 nr = 0; u64 nr = 0;
u64 cur_byte; u64 cur_byte;
u64 old_size; u64 old_size;
unsigned long rem;
struct btrfs_block_group_cache *cache; struct btrfs_block_group_cache *cache;
struct btrfs_block_group_item *item; struct btrfs_block_group_item *item;
struct btrfs_fs_info *info = root->fs_info; struct btrfs_fs_info *info = root->fs_info;
...@@ -2538,7 +2539,8 @@ int btrfs_grow_extent_tree(struct btrfs_trans_handle *trans, ...@@ -2538,7 +2539,8 @@ int btrfs_grow_extent_tree(struct btrfs_trans_handle *trans,
struct btrfs_block_group_item); struct btrfs_block_group_item);
btrfs_set_disk_block_group_used(leaf, item, 0); btrfs_set_disk_block_group_used(leaf, item, 0);
if (nr % 3) { div_long_long_rem(nr, 3, &rem);
if (rem) {
btrfs_set_disk_block_group_flags(leaf, item, btrfs_set_disk_block_group_flags(leaf, item,
BTRFS_BLOCK_GROUP_DATA); BTRFS_BLOCK_GROUP_DATA);
} else { } else {
......
...@@ -81,9 +81,11 @@ int btrfs_check_free_space(struct btrfs_root *root, u64 num_required, ...@@ -81,9 +81,11 @@ int btrfs_check_free_space(struct btrfs_root *root, u64 num_required,
int ret = 0; int ret = 0;
if (for_del) if (for_del)
thresh = (total * 90) / 100; thresh = total * 90;
else else
thresh = (total * 85) / 100; thresh = total * 85;
do_div(thresh, 100);
spin_lock(&root->fs_info->delalloc_lock); spin_lock(&root->fs_info->delalloc_lock);
if (used + root->fs_info->delalloc_bytes + num_required > thresh) if (used + root->fs_info->delalloc_bytes + num_required > thresh)
...@@ -2475,7 +2477,9 @@ static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg) ...@@ -2475,7 +2477,9 @@ static int btrfs_ioctl_resize(struct btrfs_root *root, void __user *arg)
ret = -EFBIG; ret = -EFBIG;
goto out_unlock; goto out_unlock;
} }
new_size = (new_size / root->sectorsize) * root->sectorsize;
do_div(new_size, root->sectorsize);
new_size *= root->sectorsize;
printk("new size is %Lu\n", new_size); printk("new size is %Lu\n", new_size);
if (new_size > old_size) { if (new_size > old_size) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment