69 lines
2.3 KiB
Diff
69 lines
2.3 KiB
Diff
From 3ac87fa03f2ff6527539a7ec7be84488813841da Mon Sep 17 00:00:00 2001
|
|
From: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Date: Sun, 1 Dec 2024 21:35:11 -0500
|
|
Subject: [PATCH 161/233] bcachefs: logged ops only use inum 0 of logged ops
|
|
btree
|
|
Content-Type: text/plain; charset="utf-8"
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
we wish to use the logged ops btree for other items that aren't strictly
|
|
logged ops: cursors for inode allocation
|
|
|
|
There's no reason to create another cached btree for inode allocator
|
|
cursors - so reserve different parts of the keyspace for different
|
|
purposes.
|
|
|
|
Older versions will ignore or delete the cursors.
|
|
|
|
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
|
|
Signed-off-by: Alexander Miroshnichenko <alex@millerson.name>
|
|
---
|
|
fs/bcachefs/logged_ops.c | 10 +++++-----
|
|
fs/bcachefs/logged_ops_format.h | 2 ++
|
|
2 files changed, 7 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/fs/bcachefs/logged_ops.c b/fs/bcachefs/logged_ops.c
|
|
index 60e00702d1a4..1ac51af16299 100644
|
|
--- a/fs/bcachefs/logged_ops.c
|
|
+++ b/fs/bcachefs/logged_ops.c
|
|
@@ -63,8 +63,9 @@ static int resume_logged_op(struct btree_trans *trans, struct btree_iter *iter,
|
|
int bch2_resume_logged_ops(struct bch_fs *c)
|
|
{
|
|
int ret = bch2_trans_run(c,
|
|
- for_each_btree_key(trans, iter,
|
|
- BTREE_ID_logged_ops, POS_MIN,
|
|
+ for_each_btree_key_max(trans, iter,
|
|
+ BTREE_ID_logged_ops,
|
|
+ POS(LOGGED_OPS_INUM, 0), POS(LOGGED_OPS_INUM, U64_MAX),
|
|
BTREE_ITER_prefetch, k,
|
|
resume_logged_op(trans, &iter, k)));
|
|
bch_err_fn(c, ret);
|
|
@@ -74,9 +75,8 @@ int bch2_resume_logged_ops(struct bch_fs *c)
|
|
static int __bch2_logged_op_start(struct btree_trans *trans, struct bkey_i *k)
|
|
{
|
|
struct btree_iter iter;
|
|
- int ret;
|
|
-
|
|
- ret = bch2_bkey_get_empty_slot(trans, &iter, BTREE_ID_logged_ops, POS_MAX);
|
|
+ int ret = bch2_bkey_get_empty_slot(trans, &iter,
|
|
+ BTREE_ID_logged_ops, POS(LOGGED_OPS_INUM, U64_MAX));
|
|
if (ret)
|
|
return ret;
|
|
|
|
diff --git a/fs/bcachefs/logged_ops_format.h b/fs/bcachefs/logged_ops_format.h
|
|
index 6a4bf7129dba..0b370a963ac6 100644
|
|
--- a/fs/bcachefs/logged_ops_format.h
|
|
+++ b/fs/bcachefs/logged_ops_format.h
|
|
@@ -2,6 +2,8 @@
|
|
#ifndef _BCACHEFS_LOGGED_OPS_FORMAT_H
|
|
#define _BCACHEFS_LOGGED_OPS_FORMAT_H
|
|
|
|
+#define LOGGED_OPS_INUM 0
|
|
+
|
|
struct bch_logged_op_truncate {
|
|
struct bch_val v;
|
|
__le32 subvol;
|
|
--
|
|
2.45.2
|
|
|