From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932224AbXDLQiR (ORCPT ); Thu, 12 Apr 2007 12:38:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S932315AbXDLQiR (ORCPT ); Thu, 12 Apr 2007 12:38:17 -0400 Received: from netops-testserver-3-out.sgi.com ([192.48.171.28]:47601 "EHLO relay.sgi.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932224AbXDLQiQ (ORCPT ); Thu, 12 Apr 2007 12:38:16 -0400 Date: Thu, 12 Apr 2007 09:38:15 -0700 (PDT) From: Christoph Lameter X-X-Sender: clameter@schroedinger.engr.sgi.com To: Neil Brown cc: linux-kernel@vger.kernel.org Subject: Re: SLUB: kmem_cache_destroy doesn't In-Reply-To: <17949.57189.565653.289035@notabene.brown> Message-ID: References: <17949.57189.565653.289035@notabene.brown> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 12 Apr 2007, Neil Brown wrote: > And > > # cat /sys/slab/raid5-md1/aliases > -1 > > is a bit suspicious. Yuck! > void kmem_cache_destroy(struct kmem_cache *s) > { > down_write(&slub_lock); > if (s->refcount) > s->refcount--; > else { > list_del(&s->list); > WARN_ON(kmem_cache_close(s)); > sysfs_slab_remove(s); > kfree(s); > } > up_write(&slub_lock); > } > > looks a bit odd. > I would have thought the test should be: > > if (s->refcount > 1) Correct. Does the change fix it?