])
#
+# 3.4 switchs touch_atime to struct path
+# see kernel commit 68ac1234fb949b66941d94dce4157742799fc581
+#
+AC_DEFUN([LC_TOUCH_ATIME_1ARG],
+[AC_MSG_CHECKING([if touch_atime use one argument])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+],[
+ touch_atime((struct path *)NULL);
+],[
+ AC_DEFINE(HAVE_TOUCH_ATIME_1ARG, 1,
+ [touch_atime use one argument])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+#
# LC_PROG_LINUX
#
# Lustre linux kernel checks
LC_SUPEROPS_USE_DENTRY
LC_INODEOPS_USE_UMODE_T
+ # 3.4
+ LC_TOUCH_ATIME_1ARG
+
#
if test x$enable_server = xyes ; then
AC_DEFINE(HAVE_SERVER_SUPPORT, 1, [support server])
int hash64 = sbi->ll_flags & LL_SBI_64BIT_HASH;
int api32 = ll_need_32bit_api(sbi);
int rc;
+#ifdef HAVE_TOUCH_ATIME_1ARG
+ struct path path;
+#endif
ENTRY;
CDEBUG(D_VFSTRACE, "VFS Op:inode=%lu/%u(%p) pos %lu/%llu "
else
filp->f_pos = pos;
}
- filp->f_version = inode->i_version;
- touch_atime(filp->f_vfsmnt, filp->f_dentry);
+ filp->f_version = inode->i_version;
+#ifdef HAVE_TOUCH_ATIME_1ARG
+ path.mnt = filp->f_vfsmnt;
+ path.dentry = filp->f_dentry;
+ touch_atime(&path);
+#else
+ touch_atime(filp->f_vfsmnt, filp->f_dentry);
+#endif
out:
- if (!rc)
- ll_stats_ops_tally(sbi, LPROC_LL_READDIR, 1);
+ if (!rc)
+ ll_stats_ops_tally(sbi, LPROC_LL_READDIR, 1);
- RETURN(rc);
+ RETURN(rc);
}
int ll_send_mgc_param(struct obd_export *mgc, char *string)