Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dm zone: Use the bitmap API to allocate bitmaps

Use bitmap_zalloc()/bitmap_free() instead of hand-writing them.
It is less verbose and it improves the semantic.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: Mike Snitzer <snitzer@kernel.org>

authored by

Christophe JAILLET and committed by
Mike Snitzer
e118029c d4830012

+7 -8
+7 -8
drivers/md/dm-zone.c
··· 7 7 #include <linux/mm.h> 8 8 #include <linux/sched/mm.h> 9 9 #include <linux/slab.h> 10 + #include <linux/bitmap.h> 10 11 11 12 #include "dm-core.h" 12 13 ··· 141 140 void dm_cleanup_zoned_dev(struct mapped_device *md) 142 141 { 143 142 if (md->disk) { 144 - kfree(md->disk->conv_zones_bitmap); 143 + bitmap_free(md->disk->conv_zones_bitmap); 145 144 md->disk->conv_zones_bitmap = NULL; 146 - kfree(md->disk->seq_zones_wlock); 145 + bitmap_free(md->disk->seq_zones_wlock); 147 146 md->disk->seq_zones_wlock = NULL; 148 147 } 149 148 ··· 183 182 switch (zone->type) { 184 183 case BLK_ZONE_TYPE_CONVENTIONAL: 185 184 if (!disk->conv_zones_bitmap) { 186 - disk->conv_zones_bitmap = 187 - kcalloc(BITS_TO_LONGS(disk->nr_zones), 188 - sizeof(unsigned long), GFP_NOIO); 185 + disk->conv_zones_bitmap = bitmap_zalloc(disk->nr_zones, 186 + GFP_NOIO); 189 187 if (!disk->conv_zones_bitmap) 190 188 return -ENOMEM; 191 189 } ··· 193 193 case BLK_ZONE_TYPE_SEQWRITE_REQ: 194 194 case BLK_ZONE_TYPE_SEQWRITE_PREF: 195 195 if (!disk->seq_zones_wlock) { 196 - disk->seq_zones_wlock = 197 - kcalloc(BITS_TO_LONGS(disk->nr_zones), 198 - sizeof(unsigned long), GFP_NOIO); 196 + disk->seq_zones_wlock = bitmap_zalloc(disk->nr_zones, 197 + GFP_NOIO); 199 198 if (!disk->seq_zones_wlock) 200 199 return -ENOMEM; 201 200 }