--- spl-0.6.3/module/spl/spl-kmem.c~ 2014-06-12 22:59:01.000000000 +0200 +++ spl-0.6.3/module/spl/spl-kmem.c 2014-11-09 16:42:21.157985621 +0100 @@ -26,6 +26,7 @@ #include #include +#include #ifdef SS_DEBUG_SUBSYS #undef SS_DEBUG_SUBSYS @@ -1889,12 +1889,14 @@ return !test_bit(KMC_BIT_GROWING, &skc->skc_flags); } +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0) ) static int spl_cache_reclaim_wait(void *word) { schedule(); return 0; } +#endif /* * No available objects on any slabs, create a new slab. Note that this @@ -1917,8 +1919,13 @@ * then return so the local magazine can be rechecked for new objects. */ if (test_bit(KMC_BIT_REAPING, &skc->skc_flags)) { +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(3,17,0) ) rc = wait_on_bit(&skc->skc_flags, KMC_BIT_REAPING, spl_cache_reclaim_wait, TASK_UNINTERRUPTIBLE); +#else + rc = wait_on_bit_io(&skc->skc_flags, KMC_BIT_REAPING, + TASK_UNINTERRUPTIBLE); +#endif SRETURN(rc ? rc : -EAGAIN); }