From mboxrd@z Thu Jan 1 00:00:00 1970 From: Wanlong Gao Subject: Re: [PATCH 05/13] mm: convert shrinkers to use new API Date: Sat, 27 Aug 2011 01:09:30 +0800 Message-ID: <1314378570.1987.8.camel@Allen> References: <1314089786-20535-1-git-send-email-david@fromorbit.com> <1314089786-20535-6-git-send-email-david@fromorbit.com> Reply-To: wanlong.gao@gmail.com Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, khlebnikov@openvz.org To: Dave Chinner Return-path: Received: from mail-qw0-f46.google.com ([209.85.216.46]:59845 "EHLO mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750934Ab1HZRJi (ORCPT ); Fri, 26 Aug 2011 13:09:38 -0400 In-Reply-To: <1314089786-20535-6-git-send-email-david@fromorbit.com> Sender: linux-fsdevel-owner@vger.kernel.org List-ID: On Tue, 2011-08-23 at 18:56 +1000, Dave Chinner wrote: > From: Dave Chinner > > 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