X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libbcachefs%2Fdarray.c;h=4c900c8532688fd7be902585ce531a822577804f;hb=596ec1050d0ce55f5e2d38aa8cdcb46d92178140;hp=aae07be1d911dee203ae440d77d415875a3d5256;hpb=7fd6c3ffe45b3b42c0bc8a8c5d1387a5e3316a54;p=bcachefs-tools-debian diff --git a/libbcachefs/darray.c b/libbcachefs/darray.c index aae07be..4c900c8 100644 --- a/libbcachefs/darray.c +++ b/libbcachefs/darray.c @@ -9,10 +9,12 @@ int __bch2_darray_resize(darray_void *d, size_t element_size, size_t new_size, g if (new_size > d->size) { new_size = roundup_pow_of_two(new_size); - void *data = krealloc_array(d->data, new_size, element_size, gfp); + void *data = kvmalloc_array(new_size, element_size, gfp); if (!data) return -ENOMEM; + memcpy(data, d->data, d->size * element_size); + kvfree(d->data); d->data = data; d->size = new_size; }