summaryrefslogtreecommitdiff
path: root/libbcachefs/reflink.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2021-10-20 13:43:31 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2021-10-20 13:43:31 -0400
commit7fa98d93f6255e5d8a5cbd7427a605399435e00c (patch)
treecfb2f97110d4e888f6cc5736866fa38f82602c3f /libbcachefs/reflink.c
parent3db6ec44c5c7c39cb0067a6b02ef22090ecbaa98 (diff)
Update bcachefs sources to 4dd9a5a488 bcachefs: Fix for leaking of reflinked extentsv0.16
Diffstat (limited to 'libbcachefs/reflink.c')
-rw-r--r--libbcachefs/reflink.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libbcachefs/reflink.c b/libbcachefs/reflink.c
index 9bcf4216..2827d0ef 100644
--- a/libbcachefs/reflink.c
+++ b/libbcachefs/reflink.c
@@ -32,6 +32,10 @@ const char *bch2_reflink_p_invalid(const struct bch_fs *c, struct bkey_s_c k)
if (bkey_val_bytes(p.k) != sizeof(*p.v))
return "incorrect value size";
+ if (c->sb.version >= bcachefs_metadata_version_reflink_p_fix &&
+ le64_to_cpu(p.v->idx) < le32_to_cpu(p.v->front_pad))
+ return "idx < front_pad";
+
return NULL;
}