On Tue, Apr 10, 2018 at 11:33:39AM +0900, Minchan Kim wrote: > @@ -522,7 +532,7 @@ EXPORT_SYMBOL(radix_tree_preload); > */ > int radix_tree_maybe_preload(gfp_t gfp_mask) > { > - if (gfpflags_allow_blocking(gfp_mask)) > + if (gfpflags_allow_blocking(gfp_mask) && !(gfp_mask & __GFP_ZERO)) > return __radix_tree_preload(gfp_mask, RADIX_TREE_PRELOAD_SIZE); > /* Preloading doesn't help anything with this gfp mask, skip it */ > preempt_disable(); No, you've completely misunderstood what's going on in this function.