On 09/19/2013 08:16 PM, Jonathan Brassow wrote: > The unique portion of the kmem_cache name used when dm-raid is creating > a RAID 4/5/6 array is the memory address of it's associated 'mddev' > structure. This is not always unique. The memory associated > with the 'mddev' structure can be freed and a future 'mddev' structure > can be allocated from the exact same spot. This causes an identical > name to the old cache to be created when kmem_cache_create is called. > If an old name is still present amoung slab_caches due to cache merging, > the call will fail. This is not theoretical, I see this regularly when > performing device-mapper RAID 4/5/6 tests (although, strangely only on > Fedora-19). > > Making the unique portion of the kmem_cache name based on jiffies fixes > this problem. > > Signed-off-by: Jonathan Brassow <jbrassow@xxxxxxxxxx> > --- > drivers/md/raid5.c | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c > index 7ff4f25..f731ce9 100644 > --- a/drivers/md/raid5.c > +++ b/drivers/md/raid5.c > @@ -1618,7 +1618,7 @@ static int grow_stripes(struct r5conf *conf, int num) > "raid%d-%s", conf->level, mdname(conf->mddev)); > else > sprintf(conf->cache_name[0], > - "raid%d-%p", conf->level, conf->mddev); > + "raid%d-%llu", conf->level, get_jiffies_64()); > sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]); > > conf->active_name = 0; > And it is not possible to create two inside the same jiffy? Seems unlikely at best. Why not just use a simple counter? -hpa -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>