Btrfs: 32 bit compile fixes for the resizer and enospc checks
authorChris Mason <chris.mason@oracle.com>
Thu, 3 Jan 2008 14:22:38 +0000 (09:22 -0500)
committerChris Mason <chris.mason@oracle.com>
Thu, 25 Sep 2008 15:03:58 +0000 (11:03 -0400)
Signed-off-by: Chris Mason <chris.mason@oracle.com>
fs/btrfs/extent-tree.c
fs/btrfs/inode.c

index 6137f06091e8e055df831560373d22ef0d0cd082..54f2b1d8bdfd7946db6f1e3b3cb3cbf61e6205d6 100644 (file)
@@ -2501,6 +2501,7 @@ int btrfs_grow_extent_tree(struct btrfs_trans_handle *trans,
        u64 nr = 0;
        u64 cur_byte;
        u64 old_size;
+       unsigned long rem;
        struct btrfs_block_group_cache *cache;
        struct btrfs_block_group_item *item;
        struct btrfs_fs_info *info = root->fs_info;
@@ -2538,7 +2539,8 @@ int btrfs_grow_extent_tree(struct btrfs_trans_handle *trans,
                                      struct btrfs_block_group_item);
 
                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_BLOCK_GROUP_DATA);
                } else {
index b62f35e862bd78751d56667b32aa8a9b091276f1..8a2001bbf1048b4af8064ff67ad963415ae85ebf 100644 (file)
@@ -81,9 +81,11 @@ int btrfs_check_free_space(struct btrfs_root *root, u64 num_required,
        int ret = 0;
 
        if (for_del)
-               thresh = (total * 90) / 100;
+               thresh = total * 90;
        else
-               thresh = (total * 85) / 100;
+               thresh = total * 85;
+
+       do_div(thresh, 100);
 
        spin_lock(&root->fs_info->delalloc_lock);
        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)
                ret = -EFBIG;
                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);
        if (new_size > old_size) {