summaryrefslogtreecommitdiff
path: root/libbcachefs/darray.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-12-30 22:54:04 -0500
committerKent Overstreet <kent.overstreet@linux.dev>2024-01-03 20:31:37 -0500
commit1f79cf3825e94fcb146d417b6dda9b94c93c7a53 (patch)
tree152d89dcb9217e1dbe18594d038a077e0d6f822c /libbcachefs/darray.c
parent3054e5debba5ccf842346bd202921f08e43d1e84 (diff)
Update bcachefs sources to 2a6125decb43 bcachefs: bch_sb_field_downgrade
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/darray.c')
-rw-r--r--libbcachefs/darray.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/libbcachefs/darray.c b/libbcachefs/darray.c
index 4c900c85..ac35b8b7 100644
--- a/libbcachefs/darray.c
+++ b/libbcachefs/darray.c
@@ -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;
}