From 2b28128afece8bd2c34a816a6de87a0543b4e1f9 Mon Sep 17 00:00:00 2001 From: dann frazier Date: Mon, 20 Apr 2009 23:54:01 +0000 Subject: [PATCH] Btrfs: fix __ucmpdi2 compile bug on 32 bit builds svn path=/dists/sid/linux-2.6/; revision=13462 --- debian/changelog | 1 + .../all/btrfs-fix-__ucmpdi2-compile-bug.patch | 52 +++++++++++++++++++ debian/patches/series/4 | 1 + 3 files changed, 54 insertions(+) create mode 100644 debian/patches/bugfix/all/btrfs-fix-__ucmpdi2-compile-bug.patch diff --git a/debian/changelog b/debian/changelog index 638792552..38c77b726 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ linux-2.6 (2.6.29-4) UNRELEASED; urgency=low [ dann frazier ] * [parisc] Fix macro expansion in atomic.h fixing PHONET compilation issue * [parisc] reenable PHONET + * Btrfs: fix __ucmpdi2 compile bug on 32 bit builds -- maximilian attems Fri, 17 Apr 2009 11:30:55 +0200 diff --git a/debian/patches/bugfix/all/btrfs-fix-__ucmpdi2-compile-bug.patch b/debian/patches/bugfix/all/btrfs-fix-__ucmpdi2-compile-bug.patch new file mode 100644 index 000000000..559132e77 --- /dev/null +++ b/debian/patches/bugfix/all/btrfs-fix-__ucmpdi2-compile-bug.patch @@ -0,0 +1,52 @@ +commit 93dbfad7ac647d4f00354893fe93e8a55be114d5 +Author: Heiko Carstens +Date: Fri Apr 3 10:33:45 2009 -0400 + + Btrfs: fix __ucmpdi2 compile bug on 32 bit builds + + We get this on 32 builds: + + fs/built-in.o: In function `extent_fiemap': + (.text+0x1019f2): undefined reference to `__ucmpdi2' + + Happens because of a switch statement with a 64 bit argument. + Convert this to an if statement to fix this. + + Signed-off-by: Heiko Carstens + Signed-off-by: Chris Mason + +diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c +index 08085af..eb2bee8 100644 +--- a/fs/btrfs/extent_io.c ++++ b/fs/btrfs/extent_io.c +@@ -2884,25 +2884,19 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, + disko = 0; + flags = 0; + +- switch (em->block_start) { +- case EXTENT_MAP_LAST_BYTE: ++ if (em->block_start == EXTENT_MAP_LAST_BYTE) { + end = 1; + flags |= FIEMAP_EXTENT_LAST; +- break; +- case EXTENT_MAP_HOLE: ++ } else if (em->block_start == EXTENT_MAP_HOLE) { + flags |= FIEMAP_EXTENT_UNWRITTEN; +- break; +- case EXTENT_MAP_INLINE: ++ } else if (em->block_start == EXTENT_MAP_INLINE) { + flags |= (FIEMAP_EXTENT_DATA_INLINE | + FIEMAP_EXTENT_NOT_ALIGNED); +- break; +- case EXTENT_MAP_DELALLOC: ++ } else if (em->block_start == EXTENT_MAP_DELALLOC) { + flags |= (FIEMAP_EXTENT_DELALLOC | + FIEMAP_EXTENT_UNKNOWN); +- break; +- default: ++ } else { + disko = em->block_start; +- break; + } + if (test_bit(EXTENT_FLAG_COMPRESSED, &em->flags)) + flags |= FIEMAP_EXTENT_ENCODED; diff --git a/debian/patches/series/4 b/debian/patches/series/4 index d7555a576..273605458 100644 --- a/debian/patches/series/4 +++ b/debian/patches/series/4 @@ -1,3 +1,4 @@ + bugfix/all/drm-intel.git-f544847fbaf099278343f875987a983f2b913134.patch + bugfix/all/extend-erase-timeout-spi-flash.patch + bugfix/parisc/fix-macro-expansion-in-atomic.h.patch ++ bugfix/all/btrfs-fix-__ucmpdi2-compile-bug.patch