]> git.proxmox.com Git - mirror_spl.git/blobdiff - config/spl-build.m4
Add dnlc_reduce_cache() support
[mirror_spl.git] / config / spl-build.m4
index 72bb3258ef3ee5ef851c9068916ca4b6adcf9ecc..94c7f3e7460382433bf4cb673cb3d87ba372a9f6 100644 (file)
@@ -76,6 +76,8 @@ AC_DEFUN([SPL_AC_CONFIG_KERNEL], [
        SPL_AC_3ARGS_FILE_FSYNC
        SPL_AC_EXPORTED_RWSEM_IS_LOCKED
        SPL_AC_KERNEL_INVALIDATE_INODES
+       SPL_AC_SHRINK_DCACHE_MEMORY
+       SPL_AC_SHRINK_ICACHE_MEMORY
 ])
 
 AC_DEFUN([SPL_AC_MODULE_SYMVERS], [
@@ -1717,3 +1719,33 @@ AC_DEFUN([SPL_AC_KERNEL_INVALIDATE_INODES], [
                [invalidate_inodes() is available])],
                [])
 ])
+
+dnl #
+dnl # 2.6.xx API compat,
+dnl # There currently exists no exposed API to partially shrink the dcache.
+dnl # The expected mechanism to shrink the cache is a registered shrinker
+dnl # which is called during memory pressure.
+dnl #
+AC_DEFUN([SPL_AC_SHRINK_DCACHE_MEMORY], [
+       SPL_CHECK_SYMBOL_EXPORT(
+               [shrink_dcache_memory],
+               [fs/dcache.c],
+               [AC_DEFINE(HAVE_SHRINK_DCACHE_MEMORY, 1,
+               [shrink_dcache_memory() is available])],
+               [])
+])
+
+dnl #
+dnl # 2.6.xx API compat,
+dnl # There currently exists no exposed API to partially shrink the icache.
+dnl # The expected mechanism to shrink the cache is a registered shrinker
+dnl # which is called during memory pressure.
+dnl #
+AC_DEFUN([SPL_AC_SHRINK_ICACHE_MEMORY], [
+       SPL_CHECK_SYMBOL_EXPORT(
+               [shrink_icache_memory],
+               [fs/inode.c],
+               [AC_DEFINE(HAVE_SHRINK_ICACHE_MEMORY, 1,
+               [shrink_icache_memory() is available])],
+               [])
+])