backport zcache and zsmalloc from 3.4 kernel