[lvm-devel] stable-2.02 - bcache: use flexible arrays
Zdenek Kabelac
zkabelac at sourceware.org
Fri Oct 16 19:12:05 UTC 2020
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e8df5038853b927fefc83e4ae75a38411cc2d865
Commit: e8df5038853b927fefc83e4ae75a38411cc2d865
Parent: 479f0822ad1074cab4bcb1b5404257618cce14b3
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Wed Sep 30 23:28:44 2020 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Oct 16 18:09:55 2020 +0200
bcache: use flexible arrays
Cleanup, allocate whole struct with a single malloc call.
---
lib/device/bcache.c | 13 +++----------
1 file changed, 3 insertions(+), 10 deletions(-)
diff --git a/lib/device/bcache.c b/lib/device/bcache.c
index f68576a55..28fb42133 100644
--- a/lib/device/bcache.c
+++ b/lib/device/bcache.c
@@ -61,23 +61,17 @@ struct control_block {
struct cb_set {
struct dm_list free;
struct dm_list allocated;
- struct control_block *vec;
+ struct control_block vec[];
} control_block_set;
static struct cb_set *_cb_set_create(unsigned nr)
{
unsigned i;
- struct cb_set *cbs = malloc(sizeof(*cbs));
+ struct cb_set *cbs = malloc(sizeof(*cbs) + nr * sizeof(*cbs->vec));
- if (!cbs)
+ if (!cbs->vec)
return NULL;
- cbs->vec = malloc(nr * sizeof(*cbs->vec));
- if (!cbs->vec) {
- free(cbs);
- return NULL;
- }
-
dm_list_init(&cbs->free);
dm_list_init(&cbs->allocated);
@@ -97,7 +91,6 @@ static void _cb_set_destroy(struct cb_set *cbs)
return;
}
- free(cbs->vec);
free(cbs);
}
More information about the lvm-devel
mailing list