Messages in this thread | | | Subject | Re: [PATCH 05/13] mm: convert shrinkers to use new API | From | Wanlong Gao <> | Date | Sat, 27 Aug 2011 01:09:30 +0800 |
| |
On Tue, 2011-08-23 at 18:56 +1000, Dave Chinner wrote: > From: Dave Chinner <dchinner@redhat.com> > > Modify shrink_slab() to use the new .count_objects/.scan_objects API > and implement the callouts for all the existing shrinkers.
> +static long > +cifs_idmap_shrinker_scan(struct shrinker *shrink, struct shrink_control *sc) > { > - int nr_to_scan = sc->nr_to_scan; > - int nr_del = 0; > - int nr_rem = 0; > struct rb_root *root; > + long freed; > > root = &uidtree; > spin_lock(&siduidlock); > - shrink_idmap_tree(root, nr_to_scan, &nr_rem, &nr_del); > + freed = shrink_idmap_tree(root, sc->nr_to_scan); > spin_unlock(&siduidlock); > > root = &gidtree; > spin_lock(&sidgidlock); > - shrink_idmap_tree(root, nr_to_scan, &nr_rem, &nr_del); > + freed += shrink_idmap_tree(root, sc->nr_to_scan); > spin_unlock(&sidgidlock); > > - return nr_rem; > + return freed; > +} > + > +/* > + * This still abuses the nr_to_scan == 0 trick to get the common code just to > + * count objects. There neds to be an external count of the objects in the
^^^^^? Hi Dave: Great work. a bit comments. Thanks -Wanlong Gao
| |