]> git.proxmox.com Git - mirror_spl.git/blobdiff - include/linux/mm_compat.h
Make include/linux/ conform to ZFS style standard
[mirror_spl.git] / include / linux / mm_compat.h
index 97e5af012288e8ff5306507e9e05eb4975ee6481..c10652efd057dcf93ac65f4757de3181a3ab4722 100644 (file)
@@ -1,4 +1,4 @@
-/*****************************************************************************\
+/*
  *  Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
  *  Copyright (C) 2007 The Regents of the University of California.
  *  Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER).
  *
  *  You should have received a copy of the GNU General Public License along
  *  with the SPL.  If not, see <http://www.gnu.org/licenses/>.
-\*****************************************************************************/
+ */
 
 #ifndef _SPL_MM_COMPAT_H
-#define _SPL_MM_COMPAT_H
+#define        _SPL_MM_COMPAT_H
 
 #include <linux/mm.h>
 #include <linux/fs.h>
@@ -35,102 +35,6 @@ struct shrink_control {
 };
 #endif /* HAVE_SHRINK_CONTROL_STRUCT */
 
-/*
- * 2.6.xx API compat,
- * There currently exists no exposed API to partially shrink the dcache.
- * The expected mechanism to shrink the cache is a registered shrinker
- * which is called during memory pressure.
- */
-#ifndef HAVE_SHRINK_DCACHE_MEMORY
-# if defined(HAVE_SHRINK_CONTROL_STRUCT)
-typedef int (*shrink_dcache_memory_t)(struct shrinker *,
-    struct shrink_control *);
-extern shrink_dcache_memory_t shrink_dcache_memory_fn;
-#  define shrink_dcache_memory(nr, gfp)                                      \
-({                                                                           \
-       struct shrink_control sc = { .nr_to_scan = nr, .gfp_mask = gfp };    \
-       int __ret__ = 0;                                                     \
-                                                                             \
-       if (shrink_dcache_memory_fn)                                         \
-               __ret__ = shrink_dcache_memory_fn(NULL, &sc);                \
-                                                                             \
-       __ret__;                                                             \
-})
-# elif defined(HAVE_3ARGS_SHRINKER_CALLBACK)
-typedef int (*shrink_dcache_memory_t)(struct shrinker *, int, gfp_t);
-extern shrink_dcache_memory_t shrink_dcache_memory_fn;
-#  define shrink_dcache_memory(nr, gfp)                                      \
-({                                                                           \
-       int __ret__ = 0;                                                     \
-                                                                             \
-       if (shrink_dcache_memory_fn)                                         \
-               __ret__ = shrink_dcache_memory_fn(NULL, nr, gfp);            \
-                                                                             \
-       __ret__;                                                             \
-})
-# else
-typedef int (*shrink_dcache_memory_t)(int, gfp_t);
-extern shrink_dcache_memory_t shrink_dcache_memory_fn;
-#  define shrink_dcache_memory(nr, gfp)                                      \
-({                                                                           \
-       int __ret__ = 0;                                                     \
-                                                                             \
-       if (shrink_dcache_memory_fn)                                         \
-               __ret__ = shrink_dcache_memory_fn(nr, gfp);                  \
-                                                                             \
-       __ret__;                                                             \
-})
-# endif /* HAVE_3ARGS_SHRINKER_CALLBACK */
-#endif /* HAVE_SHRINK_DCACHE_MEMORY */
-
-/*
- * 2.6.xx API compat,
- * There currently exists no exposed API to partially shrink the icache.
- * The expected mechanism to shrink the cache is a registered shrinker
- * which is called during memory pressure.
- */
-#ifndef HAVE_SHRINK_ICACHE_MEMORY
-# if defined(HAVE_SHRINK_CONTROL_STRUCT)
-typedef int (*shrink_icache_memory_t)(struct shrinker *,
-    struct shrink_control *);
-extern shrink_icache_memory_t shrink_icache_memory_fn;
-#  define shrink_icache_memory(nr, gfp)                                      \
-({                                                                           \
-       struct shrink_control sc = { .nr_to_scan = nr, .gfp_mask = gfp };    \
-       int __ret__ = 0;                                                     \
-                                                                             \
-       if (shrink_icache_memory_fn)                                         \
-               __ret__ = shrink_icache_memory_fn(NULL, &sc);                \
-                                                                             \
-       __ret__;                                                             \
-})
-# elif defined(HAVE_3ARGS_SHRINKER_CALLBACK)
-typedef int (*shrink_icache_memory_t)(struct shrinker *, int, gfp_t);
-extern shrink_icache_memory_t shrink_icache_memory_fn;
-#  define shrink_icache_memory(nr, gfp)                                      \
-({                                                                           \
-       int __ret__ = 0;                                                     \
-                                                                             \
-       if (shrink_icache_memory_fn)                                         \
-               __ret__ = shrink_icache_memory_fn(NULL, nr, gfp);            \
-                                                                             \
-       __ret__;                                                             \
-})
-# else
-typedef int (*shrink_icache_memory_t)(int, gfp_t);
-extern shrink_icache_memory_t shrink_icache_memory_fn;
-#  define shrink_icache_memory(nr, gfp)                                      \
-({                                                                           \
-       int __ret__ = 0;                                                     \
-                                                                             \
-       if (shrink_icache_memory_fn)                                         \
-               __ret__ = shrink_icache_memory_fn(nr, gfp);                  \
-                                                                             \
-       __ret__;                                                             \
-})
-# endif /* HAVE_3ARGS_SHRINKER_CALLBACK */
-#endif /* HAVE_SHRINK_ICACHE_MEMORY */
-
 /*
  * Due to frequent changes in the shrinker API the following
  * compatibility wrappers should be used.  They are as follows:
@@ -295,4 +199,11 @@ fn ## _scan_objects(struct shrinker *shrink, struct shrink_control *sc)    \
 #error "Unknown shrinker callback"
 #endif
 
+#if defined(HAVE_SPLIT_SHRINKER_CALLBACK)
+typedef unsigned long  spl_shrinker_t;
+#else
+typedef int            spl_shrinker_t;
+#define        SHRINK_STOP     (-1)
+#endif
+
 #endif /* SPL_MM_COMPAT_H */