Don't include <linux/rhashtable.h> if it is not available.
Lustre-change: https://review.whamcloud.com/34020
Lustre-commit:
29d627f860bc1963f2103ea441577dbd18d71344
Fixes:
ac8d93c9f6f9 ("LU-8130 libcfs: support latest rhashtable API")
Test-Parameters: trivial
Signed-off-by: Andreas Dilger <adilger@whamcloud.com>
Change-Id: I80b2ee63fb2a438399359f8052a5063429254035
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/35565
Tested-by: Maloo <maloo@whamcloud.com>
Tested-by: jenkins <devops@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
]) # LIBCFS_SHRINKER_COUNT
#
+# Kernel version 3.16 added rhashtable.h in 7e1e77636e36075eb
+#
+AC_DEFUN([LIBCFS_LINUX_RHASHTABLE_H],[
+LB_CHECK_LINUX_HEADER([linux/rhashtable.h], [
+ AC_DEFINE(HAVE_LINUX_RHASHTABLE_H, 1,
+ [linux/rhashtable.h is present])
+])
+]) # LIBCFS_LINUX_RHASHTABLE_H
+
+#
# Kernel version 3.17 changed hlist_add_after to
# hlist_add_behind
#
LIBCFS_KTIME_BEFORE
LIBCFS_KTIME_COMPARE
LIBCFS_SHRINKER_COUNT
+# 3.16
+LIBCFS_LINUX_RHASHTABLE_H
# 3.17
LIBCFS_HLIST_ADD_AFTER
LIBCFS_TIMESPEC64
#define __LIBCFS_LINUX_HASH_H__
#include <linux/dcache.h>
-#include <linux/rhashtable.h>
u64 cfs_hashlen_string(const void *salt, const char *name);
#endif
#endif /* !HAVE_STRINGHASH */
+#ifdef HAVE_LINUX_RHASHTABLE_H
+#include <linux/rhashtable.h>
+
#ifndef HAVE_RHLTABLE
struct rhlist_head {
struct rhash_head rhead;
return NULL;
}
#endif /* !HAVE_RHASHTABLE_LOOKUP */
+#else
+#define rhashtable_init(ht, param) 0
+#define rhashtable_destroy(ht) do {} while (0)
+#endif /* HAVE_LINUX_RHASHTABLE_H */
#endif /* __LIBCFS_LINUX_HASH_H__ */