示例#1
0
/**
 * crush_destroy - Destroy a crush_map
 * @map: crush_map pointer
 */
void crush_destroy(struct crush_map *map)
{
    /* buckets */
    if (map->buckets)
    {
        __s32 b;
        for (b = 0; b < map->max_buckets; b++)
        {
            if (map->buckets[b] == NULL)
                continue;
            crush_destroy_bucket(map->buckets[b]);
        }
        kfree(map->buckets);
    }

    /* rules */
    if (map->rules)
    {
        __u32 b;
        for (b = 0; b < map->max_rules; b++)
            crush_destroy_rule(map->rules[b]);
        kfree(map->rules);
    }

#ifndef __KERNEL__
    kfree(map->choose_tries);
#endif
    kfree(map);
}
示例#2
0
文件: crush.c 项目: 19Dan01/linux
/**
 * crush_destroy - Destroy a crush_map
 * @map: crush_map pointer
 */
void crush_destroy(struct crush_map *map)
{
	/* buckets */
	if (map->buckets) {
		__s32 b;
		for (b = 0; b < map->max_buckets; b++) {
			if (map->buckets[b] == NULL)
				continue;
			crush_destroy_bucket(map->buckets[b]);
		}
		kfree(map->buckets);
	}

	/* rules */
	if (map->rules) {
		__u32 b;
		for (b = 0; b < map->max_rules; b++)
			crush_destroy_rule(map->rules[b]);
		kfree(map->rules);
	}

	kfree(map);
}