On Tue, 2017-05-02 at 02:53 +0900, damien.lemoal@xxxxxxx wrote: > +static unsigned long dmz_mblock_shrinker_count(struct shrinker *shrink, > + struct shrink_control *sc) > +{ > + struct dmz_target *dmz = > + container_of(shrink, struct dmz_target, mblk_shrinker); > + > + return atomic_read(&dmz->nr_mblks); > +} Hello Damien, dmz_mblock_shrinker_count() probably should return the following value since dmz_shrink_mblock_cache() won't free more than the this number of elements: max(atomic_read(&dmz->nr_mblks) - dmz->min_nr_mblks, 0) But since v2 is IMHO good enough to be merged, for the whole series: Reviewed-by: Bart Van Assche <bart.vanassche@xxxxxxxxxxx>