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; -- 1.7.7.6 -- To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html