Skip to content
Snippets Groups Projects
Commit ba0d551a authored by Andreas Dilger's avatar Andreas Dilger
Browse files

Fix build problems with RH ia64 kernel on TDEV/Thunder:

- they back-ported PDE from 2.6, which broke our compat macro
- they changed direct_IO method to pass struct file instead of struct inode

Both are now checked in portals/archdep.m4 directly instead of as a version
number check so we don't need to worry about other releases doing the same.
parent 25086623
No related merge requests found
...@@ -369,3 +369,23 @@ if test $RH_2_4_20 = 1; then ...@@ -369,3 +369,23 @@ if test $RH_2_4_20 = 1; then
else else
AC_MSG_RESULT($LINUXRELEASE) AC_MSG_RESULT($LINUXRELEASE)
fi fi
# ---------- Red Hat 2.4.21 backports some more 2.5 bits --------
AC_MSG_CHECKING(if kernel defines PDE)
HAVE_PDE="`grep -c 'proc_dir_entry..PDE' $LINUX/include/linux/proc_fs.h`"
if test "$HAVE_PDE" != 0 ; then
CPPFLAGS="$CPPFLAGS -DHAVE_PDE"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING(if kernel passes struct file to direct_IO)
HAVE_DIO_FILE="`grep -c 'direct_IO.*struct file' $LINUX/include/linux/fs.h`"
if test "$HAVE_DIO_FILE" != 0 ; then
CPPFLAGS="$CPPFLAGS -DHAVE_DIO_FILE"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
...@@ -158,7 +158,7 @@ static inline void lustre_daemonize_helper(void) ...@@ -158,7 +158,7 @@ static inline void lustre_daemonize_helper(void)
#endif #endif
/* to find proc_dir_entry from inode. 2.6 has native one -bzzz */ /* to find proc_dir_entry from inode. 2.6 has native one -bzzz */
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23) #ifndef HAVE_PDE
#define PDE(ii) ((ii)->u.generic_ip) #define PDE(ii) ((ii)->u.generic_ip)
#endif #endif
......
...@@ -131,9 +131,18 @@ out: ...@@ -131,9 +131,18 @@ out:
RETURN(rc); RETURN(rc);
} }
static int ll_direct_IO_24(int rw, struct inode *inode, struct kiobuf *iobuf, static int ll_direct_IO_24(int rw,
unsigned long blocknr, int blocksize) #ifdef HAVE_DIO_FILE
struct file *file,
#else
struct inode *inode,
#endif
struct kiobuf *iobuf, unsigned long blocknr,
int blocksize)
{ {
#ifdef HAVE_DIO_FILE
struct inode *inode = file->f_dentry->d_inode;
#endif
struct ll_inode_info *lli = ll_i2info(inode); struct ll_inode_info *lli = ll_i2info(inode);
struct lov_stripe_md *lsm = lli->lli_smd; struct lov_stripe_md *lsm = lli->lli_smd;
struct brw_page *pga; struct brw_page *pga;
......
...@@ -369,3 +369,23 @@ if test $RH_2_4_20 = 1; then ...@@ -369,3 +369,23 @@ if test $RH_2_4_20 = 1; then
else else
AC_MSG_RESULT($LINUXRELEASE) AC_MSG_RESULT($LINUXRELEASE)
fi fi
# ---------- Red Hat 2.4.21 backports some more 2.5 bits --------
AC_MSG_CHECKING(if kernel defines PDE)
HAVE_PDE="`grep -c 'proc_dir_entry..PDE' $LINUX/include/linux/proc_fs.h`"
if test "$HAVE_PDE" != 0 ; then
CPPFLAGS="$CPPFLAGS -DHAVE_PDE"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING(if kernel passes struct file to direct_IO)
HAVE_DIO_FILE="`grep -c 'direct_IO.*struct file' $LINUX/include/linux/fs.h`"
if test "$HAVE_DIO_FILE" != 0 ; then
CPPFLAGS="$CPPFLAGS -DHAVE_DIO_FILE"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment