From: Harvey Harrison Subject: Re: [PATCH][RFC]fix soft lock up at NFS mount by per-SB LRU-list of unused dentries Date: Thu, 22 May 2008 16:14:38 -0700 Message-ID: <1211498078.6888.21.camel@brick> References: <4834D8DA.30907@np.css.fujitsu.com> <20080522225608.GZ173056135@sgi.com> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: Kentaro Makita , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, akpm@linux-foundation.org, viro@ZenIV.linux.org.uk To: David Chinner Return-path: In-Reply-To: <20080522225608.GZ173056135@sgi.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org On Fri, 2008-05-23 at 08:56 +1000, David Chinner wrote: > On Thu, May 22, 2008 at 11:22:18AM +0900, Kentaro Makita wrote: > > +/* > > + * Shrink the dentry LRU on a given superblock. > > + * @sb : superblock to shrink dentry LRU. > > + * @count: If count is NULL, we prune all dentries on superblock. > > + * @flags: If flags is non-zero, we need to do special processing based on > > + * which flags are set. This means we don't need to maintain multiple > > + * similar copies of this loop. > > + */ > > +static void __shrink_dcache_sb(struct super_block *sb, int *count, int flags) > > +{ > > + LIST_HEAD(referenced); > > + LIST_HEAD(tmp); > > + struct dentry *dentry; > > + int cnt = 0; > > + > > + BUG_ON(!sb); > > + BUG_ON((flags & DCACHE_REFERENCED) && count == NULL); > > + spin_lock(&dcache_lock); > > + if (count != NULL) > > + /* called from prune_dcache() and shrink_dcache_parent() */ > > + cnt = *count; > > I'd convert all the 'if (count == NULL)' to 'if (!count)' and same > for 'if (count != NULL)' to 'if (count)'.... It's a small thing, but in this case it almost makes sense to have the explicit null to remind people it's a pointer....whenever people see a variable named count, it's easy to assume it's an integer. YMMV Harvey