From: adilger Date: Tue, 14 Apr 2009 07:02:57 +0000 (+0000) Subject: Branch b1_8 X-Git-Tag: v1_9_170~53 X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=commitdiff_plain;h=48961c4d439f5f72e4604384ec5dac3f958fbc2c Branch b1_8 Use EXT_UNSET_BLOCK to avoid confusion with EXT_MAX_BLOCK on 16TB-1 block filesystems. This patch was committed to b_release_1_8_0, but was missed on ldiskfs HEAD for b1_8. b=16114 o=girish.shilamkar i=adilger i=kalpak.shah --- diff --git a/ldiskfs/kernel_patches/patches/ext3-extents-2.6.22-vanilla.patch b/ldiskfs/kernel_patches/patches/ext3-extents-2.6.22-vanilla.patch index 2a0fcad..f0358a6 100644 --- a/ldiskfs/kernel_patches/patches/ext3-extents-2.6.22-vanilla.patch +++ b/ldiskfs/kernel_patches/patches/ext3-extents-2.6.22-vanilla.patch @@ -1162,7 +1162,7 @@ Index: linux-2.6.18.8/fs/ext3/extents.c +} + +/* -+ * returns first allocated block from next leaf or EXT_MAX_BLOCK ++ * returns first allocated block from next leaf or EXT_UNSET_BLOCK + */ +static unsigned ext3_ext_next_leaf_block(struct inode *inode, + struct ext3_ext_path *path) @@ -1174,7 +1174,7 @@ Index: linux-2.6.18.8/fs/ext3/extents.c + + /* zero-tree has no leaf blocks at all */ + if (depth == 0) -+ return EXT_MAX_BLOCK; ++ return EXT_UNSET_BLOCK; + + /* go to index block */ + depth--; @@ -1186,7 +1186,7 @@ Index: linux-2.6.18.8/fs/ext3/extents.c + depth--; + } + -+ return EXT_MAX_BLOCK; ++ return EXT_UNSET_BLOCK; +} + +/* @@ -1309,7 +1309,7 @@ Index: linux-2.6.18.8/fs/ext3/extents.c + fex = EXT_LAST_EXTENT(eh); + next = ext3_ext_next_leaf_block(inode, path); + if (le32_to_cpu(newext->ee_block) > le32_to_cpu(fex->ee_block) -+ && next != EXT_MAX_BLOCK) { ++ && next != EXT_UNSET_BLOCK) { + ext_debug(inode, "next leaf block - %d\n", next); + BUG_ON(npath != NULL); + npath = ext3_ext_find_extent(inode, next, NULL); @@ -1773,8 +1773,8 @@ Index: linux-2.6.18.8/fs/ext3/extents.c + path[depth].p_ext = ex; + + a = ex_ee_block > start ? ex_ee_block : start; -+ b = ex_ee_block + ex_ee_len - 1 < EXT_MAX_BLOCK ? -+ ex_ee_block + ex_ee_len - 1 : EXT_MAX_BLOCK; ++ b = (unsigned long long)ex_ee_block + ex_ee_len - 1 < ++ EXT_MAX_BLOCK ? ex_ee_block + ex_ee_len - 1 : EXT_MAX_BLOCK; + + ext_debug(inode, " border %u:%u\n", a, b); + @@ -2489,7 +2489,7 @@ Index: linux-2.6.18.8/include/linux/ext3_extents.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ linux-2.6.18.8/include/linux/ext3_extents.h 2007-07-17 09:18:14.000000000 +0200 -@@ -0,0 +1,231 @@ +@@ -0,0 +1,232 @@ +/* + * Copyright 2008 Sun Microsystems, Inc. + * Written by Alex Tomas @@ -2643,6 +2643,7 @@ Index: linux-2.6.18.8/include/linux/ext3_extents.h + + +#define EXT_MAX_BLOCK 0xffffffff ++#define EXT_UNSET_BLOCK 1 + +#define EXT_FLAGS_CLR_UNKNOWN 0x7 /* Flags cleared on modification */ +#define EXT_HDR_GEN_BITS 24