]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/darray.c
Update bcachefs sources to 2a6125decb43 bcachefs: bch_sb_field_downgrade
[bcachefs-tools-debian] / libbcachefs / darray.c
index 4c900c8532688fd7be902585ce531a822577804f..ac35b8b705ae1c076e780af570bd824d87c28ab2 100644 (file)
@@ -4,7 +4,7 @@
 #include <linux/slab.h>
 #include "darray.h"
 
-int __bch2_darray_resize(darray_void *d, size_t element_size, size_t new_size, gfp_t gfp)
+int __bch2_darray_resize(darray_char *d, size_t element_size, size_t new_size, gfp_t gfp)
 {
        if (new_size > d->size) {
                new_size = roundup_pow_of_two(new_size);
@@ -14,7 +14,8 @@ int __bch2_darray_resize(darray_void *d, size_t element_size, size_t new_size, g
                        return -ENOMEM;
 
                memcpy(data, d->data, d->size * element_size);
-               kvfree(d->data);
+               if (d->data != d->preallocated)
+                       kvfree(d->data);
                d->data = data;
                d->size = new_size;
        }