]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/md/dm-bufio.c
Merge remote-tracking branch 'kgdb/kgdb-next'
[karo-tx-linux.git] / drivers / md / dm-bufio.c
index 83cc52eaf56d00a77debb4cbdc3f0ef62aaecb97..2dd33085b331da5bee79392dcf30f7e2c734f70b 100644 (file)
@@ -1598,11 +1598,11 @@ struct dm_bufio_client *dm_bufio_client_create(struct block_device *bdev, unsign
 
        c->bdev = bdev;
        c->block_size = block_size;
-       c->sectors_per_block_bits = ffs(block_size) - 1 - SECTOR_SHIFT;
-       c->pages_per_block_bits = (ffs(block_size) - 1 >= PAGE_SHIFT) ?
-                                 ffs(block_size) - 1 - PAGE_SHIFT : 0;
-       c->blocks_per_page_bits = (ffs(block_size) - 1 < PAGE_SHIFT ?
-                                 PAGE_SHIFT - (ffs(block_size) - 1) : 0);
+       c->sectors_per_block_bits = __ffs(block_size) - SECTOR_SHIFT;
+       c->pages_per_block_bits = (__ffs(block_size) >= PAGE_SHIFT) ?
+                                 __ffs(block_size) - PAGE_SHIFT : 0;
+       c->blocks_per_page_bits = (__ffs(block_size) < PAGE_SHIFT ?
+                                 PAGE_SHIFT - __ffs(block_size) : 0);
 
        c->aux_size = aux_size;
        c->alloc_callback = alloc_callback;
@@ -1861,12 +1861,8 @@ static void __exit dm_bufio_exit(void)
        cancel_delayed_work_sync(&dm_bufio_work);
        destroy_workqueue(dm_bufio_wq);
 
-       for (i = 0; i < ARRAY_SIZE(dm_bufio_caches); i++) {
-               struct kmem_cache *kc = dm_bufio_caches[i];
-
-               if (kc)
-                       kmem_cache_destroy(kc);
-       }
+       for (i = 0; i < ARRAY_SIZE(dm_bufio_caches); i++)
+               kmem_cache_destroy(dm_bufio_caches[i]);
 
        for (i = 0; i < ARRAY_SIZE(dm_bufio_cache_names); i++)
                kfree(dm_bufio_cache_names[i]);