cache_dir
static DEFINE_PER_CPU(struct cache_dir *, cache_dir_pcpu);
static struct cache_dir *cacheinfo_create_cache_dir(unsigned int cpu_id)
struct cache_dir *cache_dir;
cache_dir = kzalloc_obj(*cache_dir);
if (!cache_dir)
cache_dir->kobj = kobj;
per_cpu(cache_dir_pcpu, cpu_id) = cache_dir;
return cache_dir;
struct cache_dir *cache_dir)
cache_dir->kobj, "index%d", index);
index_dir->next = cache_dir->index;
cache_dir->index = index_dir;
struct cache_dir *cache_dir;
cache_dir = cacheinfo_create_cache_dir(cpu_id);
if (!cache_dir)
cacheinfo_create_index_dir(cache, index, cache_dir);
static void remove_index_dirs(struct cache_dir *cache_dir)
index = cache_dir->index;
static void remove_cache_dir(struct cache_dir *cache_dir)
remove_index_dirs(cache_dir);
kobject_del(cache_dir->kobj);
kobject_put(cache_dir->kobj);
kfree(cache_dir);
struct cache_dir *cache_dir;
cache_dir = per_cpu(cache_dir_pcpu, cpu_id);
if (cache_dir)
remove_cache_dir(cache_dir);