]) # LIBCFS_KTIME_BEFORE
#
+# Kernel version 3.12 introduced ktime_compare
+#
+AC_DEFUN([LIBCFS_KTIME_COMPARE],[
+LB_CHECK_COMPILE([does function 'ktime_compare' exist],
+ktime_compare, [
+ #include <linux/ktime.h>
+],[
+ ktime_t start = ktime_set(0, 0);
+ ktime_t end = start;
+
+ ktime_compare(start, end);
+],[
+ AC_DEFINE(HAVE_KTIME_COMPARE, 1,
+ [ktime_compare is available])
+])
+]) # LIBCFS_KTIME_COMPARE
+
+#
# FC19 3.12 kernel struct shrinker change
#
AC_DEFUN([LIBCFS_SHRINKER_COUNT],[
LIBCFS_KTIME_ADD
LIBCFS_KTIME_AFTER
LIBCFS_KTIME_BEFORE
+LIBCFS_KTIME_COMPARE
LIBCFS_SHRINKER_COUNT
# 3.17
LIBCFS_HLIST_ADD_AFTER
}
#endif /* !HAVE_KTIME_BEFORE */
+#ifndef HAVE_KTIME_COMPARE
+static inline int ktime_compare(const ktime_t cmp1, const ktime_t cmp2)
+{
+ if (cmp1.tv64 < cmp2.tv64)
+ return -1;
+ if (cmp1.tv64 > cmp2.tv64)
+ return 1;
+ return 0;
+}
+#endif /* !HAVE_KTIME_COMPARE */
+
#ifndef HAVE_KTIME_GET_TS64
void ktime_get_ts64(struct timespec64 *ts);
#endif /* HAVE_KTIME_GET_TS */