Skip to content

Commit

Permalink
LU-1812 fsfilt: ext_pblock renamed to ext4_ext_pblock
Browse files Browse the repository at this point in the history
For kernels 2.6.35 and above ext_pblock was renamed to
ext4_ext_pblock. With no more RHEL5 kernel support for
ldiskfs we also clean up more macros.

see kernel commit bf89d16f6ef5389f1b9d8046e838ec87b9b3f8b9
for pblock change.

Signed-off-by: James Simmons <[email protected]>
Signed-off-by: chas williams - CONTRACTOR <[email protected]>
Change-Id: I3ce7f27f6fd6826380e6f2f54b2d50d09d36f78a
Reviewed-on: http://review.whamcloud.com/5001
Tested-by: Hudson
Reviewed-by: Bob Glossman <[email protected]>
Tested-by: Maloo <[email protected]>
Reviewed-by: Oleg Drokin <[email protected]>
  • Loading branch information
jasimmons1973 authored and Oleg Drokin committed Apr 2, 2013
1 parent bea31ad commit 6a95f45
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 4 deletions.
19 changes: 19 additions & 0 deletions ldiskfs/config/ldiskfs-build.m4
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,25 @@ AC_DEFUN([LB_EXT_FREE_BLOCKS_WITH_BUFFER_HEAD],
])
])

#
# 2.6.35 renamed ext_pblock to ext4_ext_pblock(ex)
#
AC_DEFUN([LB_EXT_PBLOCK],
[AC_MSG_CHECKING([if kernel has ext_pblocks])
LB_LINUX_TRY_COMPILE([
#include <linux/fs.h>
#include "$EXT_DIR/ext4_extents.h"
],[
ext_pblock(NULL);
],[
AC_MSG_RESULT([yes])
AC_DEFINE(HAVE_EXT_PBLOCK, 1,
[kernel has ext_pblocks])
],[
AC_MSG_RESULT([no])
])
])

#
# LDISKFS_AC_PATCH_PROGRAM
#
Expand Down
1 change: 1 addition & 0 deletions ldiskfs/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@ if test x$enable_server$enable_dist = xyesno ; then
LB_LDISKFS_EXT_DIR
LB_LDISKFS_EXT_SOURCE
LB_EXT_FREE_BLOCKS_WITH_BUFFER_HEAD
LB_EXT_PBLOCK
fi

LB_CONFIG_HEADERS
Expand Down
3 changes: 3 additions & 0 deletions ldiskfs/ldiskfs/ldiskfs_config.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@

/* ext4_free_blocks do not require struct buffer_head */
#undef HAVE_EXT_FREE_BLOCK_WITH_BUFFER_HEAD

/* kernel has ext_pblocks */
#undef HAVE_EXT_PBLOCK
12 changes: 8 additions & 4 deletions lustre/lvfs/fsfilt_ext3.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@

#include <ext4/ext4_extents.h>

#ifdef HAVE_EXT_PBLOCK /* Name changed to ext4_ext_pblock for kernel 2.6.35 */
#define ext3_ext_pblock(ex) ext_pblock((ex))
#endif

/* for kernels 2.6.18 and later */
#define FSFILT_SINGLEDATA_TRANS_BLOCKS(sb) EXT3_SINGLEDATA_TRANS_BLOCKS(sb)

Expand Down Expand Up @@ -216,7 +220,7 @@ static long ext3_ext_find_goal(struct inode *inode, struct ext3_ext_path *path,

/* try to predict block placement */
if ((ex = path[depth].p_ext))
return ext_pblock(ex) + (block - le32_to_cpu(ex->ee_block));
return ext4_ext_pblock(ex) + (block - le32_to_cpu(ex->ee_block));

/* it looks index is empty
* try to find starting from index itself */
Expand Down Expand Up @@ -372,10 +376,10 @@ static int ext3_ext_new_extent_cb(struct ext3_ext_base *base,
ext3_mb_discard_inode_preallocations(inode);
#endif
#ifdef HAVE_EXT_FREE_BLOCK_WITH_BUFFER_HEAD /* Introduced in 2.6.32-rc7 */
ext3_free_blocks(handle, inode, NULL, ext_pblock(&nex),
ext3_free_blocks(handle, inode, NULL, ext4_ext_pblock(&nex),
cpu_to_le16(nex.ee_len), 0);
#else
ext3_free_blocks(handle, inode, ext_pblock(&nex),
ext3_free_blocks(handle, inode, ext4_ext_pblock(&nex),
cpu_to_le16(nex.ee_len), 0);
#endif
goto out;
Expand All @@ -387,7 +391,7 @@ static int ext3_ext_new_extent_cb(struct ext3_ext_base *base,
* scaning after that block
*/
cex->ec_len = le16_to_cpu(nex.ee_len);
cex->ec_start = ext_pblock(&nex);
cex->ec_start = ext4_ext_pblock(&nex);
BUG_ON(le16_to_cpu(nex.ee_len) == 0);
BUG_ON(le32_to_cpu(nex.ee_block) != cex->ec_block);

Expand Down

0 comments on commit 6a95f45

Please sign in to comment.