diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-18 18:21:11 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2022-11-18 18:21:11 -0500 |
commit | c1f55a60c41ca5ab8ed7a0893c3d29f8006da82a (patch) | |
tree | 6aed1a472dc723feb6447e5495bc8452e21219f5 /libbcachefs/inode.c | |
parent | e4716b10ed0210a13efdd3252c12199da3d52aad (diff) |
Update bcachefs sources to 6406e05835 bcachefs: Nocow support
Diffstat (limited to 'libbcachefs/inode.c')
-rw-r--r-- | libbcachefs/inode.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libbcachefs/inode.c b/libbcachefs/inode.c index 1a0d2608..a91465ef 100644 --- a/libbcachefs/inode.c +++ b/libbcachefs/inode.c @@ -733,7 +733,6 @@ static int bch2_inode_delete_keys(struct btree_trans *trans, * iterator: */ bch2_trans_iter_init(trans, &iter, id, POS(inum.inum, 0), - BTREE_ITER_NOT_EXTENTS| BTREE_ITER_INTENT); while (1) { @@ -756,6 +755,14 @@ static int bch2_inode_delete_keys(struct btree_trans *trans, bkey_init(&delete.k); delete.k.p = iter.pos; + if (iter.flags & BTREE_ITER_IS_EXTENTS) { + bch2_key_resize(&delete.k, k.k->p.offset - iter.pos.offset); + + ret = bch2_extent_trim_atomic(trans, &iter, &delete); + if (ret) + goto err; + } + ret = bch2_trans_update(trans, &iter, &delete, 0) ?: bch2_trans_commit(trans, NULL, NULL, BTREE_INSERT_NOFAIL); |