summaryrefslogtreecommitdiff
path: root/libbcachefs/extents.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-03-30 14:34:20 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2020-03-30 14:34:20 -0400
commitfad8236b812f795993b88804065d950709a6c13c (patch)
tree15c1542e9fe87a2a59fcadf775b3a415bd3561e7 /libbcachefs/extents.c
parent2aed686c235a7d08adf601f147f823eb62e697a1 (diff)
Update bcachefs sources to 275cba438e bcachefs: Fix inodes pass in fsck
Diffstat (limited to 'libbcachefs/extents.c')
-rw-r--r--libbcachefs/extents.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/libbcachefs/extents.c b/libbcachefs/extents.c
index cb88dd15..792c9c1e 100644
--- a/libbcachefs/extents.c
+++ b/libbcachefs/extents.c
@@ -9,6 +9,7 @@
#include "bcachefs.h"
#include "bkey_methods.h"
#include "btree_gc.h"
+#include "btree_io.h"
#include "btree_iter.h"
#include "buckets.h"
#include "checksum.h"
@@ -214,6 +215,22 @@ void bch2_btree_ptr_to_text(struct printbuf *out, struct bch_fs *c,
bch2_bkey_ptrs_to_text(out, c, k);
}
+void bch2_btree_ptr_v2_compat(enum btree_id btree_id, unsigned version,
+ unsigned big_endian, int write,
+ struct bkey_s k)
+{
+ struct bkey_s_btree_ptr_v2 bp = bkey_s_to_btree_ptr_v2(k);
+
+ compat_bpos(0, btree_id, version, big_endian, write, &bp.v->min_key);
+
+ if (version < bcachefs_metadata_version_inode_btree_change &&
+ btree_node_type_is_extents(btree_id) &&
+ bkey_cmp(bp.v->min_key, POS_MIN))
+ bp.v->min_key = write
+ ? bkey_predecessor(bp.v->min_key)
+ : bkey_successor(bp.v->min_key);
+}
+
/* KEY_TYPE_extent: */
const char *bch2_extent_invalid(const struct bch_fs *c, struct bkey_s_c k)