summaryrefslogtreecommitdiff
path: root/fs/bcachefs/alloc_types.h
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-03-02 09:54:17 +0300
committerKent Overstreet <kent.overstreet@linux.dev>2023-10-23 00:09:55 +0300
commite84face6f0c9512d896eb1bf6c8238ea2fa7edd0 (patch)
tree802f0dde21c3311cf7a0245f379e0f1d2450bc29 /fs/bcachefs/alloc_types.h
parentd57c9add59b187a6fcd76cb80d60f36234ca8033 (diff)
downloadlinux-e84face6f0c9512d896eb1bf6c8238ea2fa7edd0.tar.xz
bcachefs: RESERVE_stripe
Rework stripe creation path - new algorithm for deciding when to create new stripes or reuse existing stripes. We add a new allocation watermark, RESERVE_stripe, above RESERVE_none. Then we always try to create a new stripe by doing RESERVE_stripe allocations; if this fails, we reuse an existing stripe and allocate buckets for it with the reserve watermark for the given write (RESERVE_none or RESERVE_movinggc). Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/alloc_types.h')
-rw-r--r--fs/bcachefs/alloc_types.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/alloc_types.h b/fs/bcachefs/alloc_types.h
index c8a45ea9d661..4d09bd20d8ec 100644
--- a/fs/bcachefs/alloc_types.h
+++ b/fs/bcachefs/alloc_types.h
@@ -22,7 +22,8 @@ struct ec_bucket_buf;
x(btree_movinggc) \
x(btree) \
x(movinggc) \
- x(none)
+ x(none) \
+ x(stripe)
enum alloc_reserve {
#define x(name) RESERVE_##name,