else
AC_MSG_RESULT($LINUXRELEASE)
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
#endif
/* 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)
#endif
RETURN(rc);
}
-static int ll_direct_IO_24(int rw, struct inode *inode, struct kiobuf *iobuf,
- unsigned long blocknr, int blocksize)
+static int ll_direct_IO_24(int rw,
+#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 lov_stripe_md *lsm = lli->lli_smd;
struct brw_page *pga;
else
AC_MSG_RESULT($LINUXRELEASE)
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