diff --git a/kmod/src/Makefile.kernelcompat b/kmod/src/Makefile.kernelcompat index a5989ff8..2682cc03 100644 --- a/kmod/src/Makefile.kernelcompat +++ b/kmod/src/Makefile.kernelcompat @@ -92,15 +92,6 @@ ifneq (,$(shell grep 'bi_status' include/linux/blk_types.h)) ccflags-y += -DKC_BIO_BI_STATUS endif -# -# v3.11-8765-ga0b02131c5fc -# -# Remove the old ->shrink() API, ->{scan,count}_objects is preferred. -# -ifneq (,$(shell grep '(*shrink)' include/linux/shrinker.h)) -ccflags-y += -DKC_SHRINKER_SHRINK -endif - # # v3.19-4777-g6bec00352861 # diff --git a/kmod/src/kernelcompat.c b/kmod/src/kernelcompat.c index 2463d134..851d5e1a 100644 --- a/kmod/src/kernelcompat.c +++ b/kmod/src/kernelcompat.c @@ -3,33 +3,6 @@ #include "kernelcompat.h" -#ifdef KC_SHRINKER_SHRINK -#include -/* - * If a target doesn't have that .{count,scan}_objects() interface then - * we have a .shrink() helper that performs the shrink work in terms of - * count/scan. - */ -int kc_shrink_wrapper_fn(struct shrinker *shrink, struct shrink_control *sc) -{ - struct kc_shrinker_wrapper *wrapper = container_of(shrink, struct kc_shrinker_wrapper, shrink); - unsigned long nr; - unsigned long rc; - - if (sc->nr_to_scan != 0) { - rc = wrapper->scan_objects(shrink, sc); - /* translate magic values to the equivalent for older kernels */ - if (rc == SHRINK_STOP) - return -1; - else if (rc == SHRINK_EMPTY) - return 0; - } - - nr = wrapper->count_objects(shrink, sc); - - return min_t(unsigned long, nr, INT_MAX); -} -#endif #ifndef KC_CURRENT_TIME_INODE struct timespec64 kc_current_time(struct inode *inode) diff --git a/kmod/src/kernelcompat.h b/kmod/src/kernelcompat.h index 62002611..3109e1e0 100644 --- a/kmod/src/kernelcompat.h +++ b/kmod/src/kernelcompat.h @@ -127,7 +127,6 @@ struct timespec64 kc_current_time(struct inode *inode); #define kc_timespec timespec64 #endif -#ifndef KC_SHRINKER_SHRINK #define KC_DEFINE_SHRINKER(name) struct shrinker name #define KC_INIT_SHRINKER_FUNCS(name, countfn, scanfn) do { \ @@ -145,35 +144,6 @@ struct timespec64 kc_current_time(struct inode *inode); #endif /* KC_SHRINKER_NAME */ #define KC_UNREGISTER_SHRINKER(ptr) (unregister_shrinker(ptr)) #define KC_SHRINKER_FN(ptr) (ptr) -#else - -#include -#ifndef SHRINK_STOP -#define SHRINK_STOP (~0UL) -#define SHRINK_EMPTY (~0UL - 1) -#endif - -int kc_shrink_wrapper_fn(struct shrinker *shrink, struct shrink_control *sc); -struct kc_shrinker_wrapper { - unsigned long (*count_objects)(struct shrinker *, struct shrink_control *sc); - unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *sc); - struct shrinker shrink; -}; - -#define KC_DEFINE_SHRINKER(name) struct kc_shrinker_wrapper name; -#define KC_INIT_SHRINKER_FUNCS(name, countfn, scanfn) do { \ - struct kc_shrinker_wrapper *_wrap = (name); \ - _wrap->count_objects = (countfn); \ - _wrap->scan_objects = (scanfn); \ - _wrap->shrink.shrink = kc_shrink_wrapper_fn; \ - _wrap->shrink.seeks = DEFAULT_SEEKS; \ -} while (0) -#define KC_SHRINKER_CONTAINER_OF(ptr, type) container_of(container_of(ptr, struct kc_shrinker_wrapper, shrink), type, shrinker) -#define KC_REGISTER_SHRINKER(ptr, fmt, ...) (register_shrinker(ptr.shrink)) -#define KC_UNREGISTER_SHRINKER(ptr) (unregister_shrinker(ptr.shrink)) -#define KC_SHRINKER_FN(ptr) (ptr.shrink) - -#endif /* KC_SHRINKER_SHRINK */ #ifdef KC_KERNEL_GETSOCKNAME_ADDRLEN #include