Fix 64-bit divide error in btrfs

This commit is contained in:
Josh Boyer 2011-08-19 09:30:34 -04:00
parent c3c2b77d29
commit 7aac3ebb1e
2 changed files with 44 additions and 1 deletions

38
btrfs-use-do_div.patch Normal file
View File

@ -0,0 +1,38 @@
From: Liu Bo <liubo2009 <at> cn.fujitsu.com>
Subject: [PATCH] Btrfs: use do_div to avoid compile errors on 32bit box
Date: 2011-08-19 09:48:44 GMT (3 hours and 36 minutes ago)
When doing div operation of u64 type, we need to be careful and use do_div
to avoid compile ERROR on 32bit box:
"ERROR: "__udivdi3" [fs/btrfs/btrfs.ko] undefined!
make[1]: *** [__modpost] Error 1
Signed-off-by: Liu Bo <liubo2009 <at> cn.fujitsu.com>
---
fs/btrfs/extent-tree.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 80d6148..9b495ce 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -6796,14 +6796,14 @@ int btrfs_can_relocate(struct btrfs_root *root, u64 bytenr)
index = get_block_group_index(block_group);
if (index == 0) {
dev_min = 4;
- min_free /= 2;
+ do_div(min_free, 2);
} else if (index == 1) {
dev_min = 2;
} else if (index == 2) {
min_free *= 2;
} else if (index == 3) {
dev_min = fs_devices->rw_devices;
- min_free /= dev_min;
+ do_div(min_free, dev_min);
}
mutex_lock(&root->fs_info->chunk_mutex);
--
1.6.5.2

View File

@ -51,7 +51,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be prepended with "0.", so # For non-released -rc kernels, this will be prepended with "0.", so
# for example a 3 here will become 0.3 # for example a 3 here will become 0.3
# #
%global baserelease 0 %global baserelease 1
%global fedora_build %{baserelease} %global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching # base_sublevel is the kernel version we're starting with and patching
@ -720,6 +720,7 @@ Patch12026: block-stray-block-put-after-teardown.patch
Patch12027: usb-add-quirk-for-logitech-webcams.patch Patch12027: usb-add-quirk-for-logitech-webcams.patch
Patch12028: fix-perf-build.patch Patch12028: fix-perf-build.patch
Patch12029: crypto-register-cryptd-first.patch Patch12029: crypto-register-cryptd-first.patch
Patch12030: btrfs-use-do_div.patch
# Runtime power management # Runtime power management
@ -1347,6 +1348,7 @@ ApplyPatch usb-add-quirk-for-logitech-webcams.patch
ApplyPatch fix-perf-build.patch ApplyPatch fix-perf-build.patch
ApplyPatch crypto-register-cryptd-first.patch ApplyPatch crypto-register-cryptd-first.patch
ApplyPatch btrfs-use-do_div.patch
# Runtime PM # Runtime PM
#ApplyPatch linux-2.6-usb-pci-autosuspend.patch #ApplyPatch linux-2.6-usb-pci-autosuspend.patch
@ -2072,6 +2074,9 @@ fi
# ||----w | # ||----w |
# || || # || ||
%changelog %changelog
* Fri Aug 19 2011 Josh Boyer <jwboyer@redhat.com>
- Add patch from upstream to fix 64-bit divide error in btrfs
* Fri Aug 19 2011 Josh Boyer <jwboyer@redhat.com> * Fri Aug 19 2011 Josh Boyer <jwboyer@redhat.com>
- Linux 3.1-rc2-git5 - Linux 3.1-rc2-git5
- Change XHCI to builtin (rhbz 731706) - Change XHCI to builtin (rhbz 731706)