summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-11-20 14:51:30 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2021-04-27 12:17:57 -0400
commitc4f48fa353ea20a193caaee4774ce761f27c5a12 (patch)
tree1112cd48d3534a539d591c560963f6e5ae92f6e6 /fs
parenta489a5525ff20a8321b1de14e6c57c6632c6c8af (diff)
bcachefs: bkey_on_stack_reassemble()
Small helper function. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/bcachefs/bkey_on_stack.h8
-rw-r--r--fs/bcachefs/bkey_sort.c3
-rw-r--r--fs/bcachefs/ec.c3
-rw-r--r--fs/bcachefs/extent_update.c3
-rw-r--r--fs/bcachefs/fs-io.c6
-rw-r--r--fs/bcachefs/io.c12
-rw-r--r--fs/bcachefs/migrate.c3
-rw-r--r--fs/bcachefs/move.c3
-rw-r--r--fs/bcachefs/reflink.c3
9 files changed, 20 insertions, 24 deletions
diff --git a/fs/bcachefs/bkey_on_stack.h b/fs/bcachefs/bkey_on_stack.h
index d4739038323f..f607a0cb37ed 100644
--- a/fs/bcachefs/bkey_on_stack.h
+++ b/fs/bcachefs/bkey_on_stack.h
@@ -19,6 +19,14 @@ static inline void bkey_on_stack_realloc(struct bkey_on_stack *s,
}
}
+static inline void bkey_on_stack_reassemble(struct bkey_on_stack *s,
+ struct bch_fs *c,
+ struct bkey_s_c k)
+{
+ bkey_on_stack_realloc(s, c, k.k->u64s);
+ bkey_reassemble(s->k, k);
+}
+
static inline void bkey_on_stack_init(struct bkey_on_stack *s)
{
s->k = (void *) s->onstack;
diff --git a/fs/bcachefs/bkey_sort.c b/fs/bcachefs/bkey_sort.c
index daef8e5c599f..2e205db5433d 100644
--- a/fs/bcachefs/bkey_sort.c
+++ b/fs/bcachefs/bkey_sort.c
@@ -356,12 +356,11 @@ struct btree_nr_keys bch2_extent_sort_fix_overlapping(struct bch_fs *c,
extent_sort_sift(iter, b, _r - iter->data);
} else if (bkey_cmp(l.k->p, r.k->p) > 0) {
- bkey_on_stack_realloc(&split, c, l.k->u64s);
/*
* r wins, but it overlaps in the middle of l - split l:
*/
- bkey_reassemble(split.k, l.s_c);
+ bkey_on_stack_reassemble(&split, c, l.s_c);
bch2_cut_back(bkey_start_pos(r.k), split.k);
bch2_cut_front_s(r.k->p, l);
diff --git a/fs/bcachefs/ec.c b/fs/bcachefs/ec.c
index e0ca0c5dcb6f..5287b5ee7d4a 100644
--- a/fs/bcachefs/ec.c
+++ b/fs/bcachefs/ec.c
@@ -807,8 +807,7 @@ static int ec_stripe_update_ptrs(struct bch_fs *c,
dev = s->key.v.ptrs[idx].dev;
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
e = bkey_i_to_s_extent(sk.k);
extent_for_each_ptr(e, ptr) {
diff --git a/fs/bcachefs/extent_update.c b/fs/bcachefs/extent_update.c
index 91ceb5d53f92..742b4d78cb3a 100644
--- a/fs/bcachefs/extent_update.c
+++ b/fs/bcachefs/extent_update.c
@@ -347,7 +347,7 @@ extent_squash(struct bch_fs *c, struct btree_iter *iter,
struct bkey_on_stack split;
bkey_on_stack_init(&split);
- bkey_on_stack_realloc(&split, c, k.k->u64s);
+ bkey_on_stack_reassemble(&split, c, k.s_c);
/*
* The insert key falls 'in the middle' of k
@@ -363,7 +363,6 @@ extent_squash(struct bch_fs *c, struct btree_iter *iter,
* modify k _before_ doing the insert (which will move
* what k points to)
*/
- bkey_reassemble(split.k, k.s_c);
split.k->k.needs_whiteout |= bkey_written(l->b, _k);
bch2_cut_back(bkey_start_pos(&insert->k), split.k);
diff --git a/fs/bcachefs/fs-io.c b/fs/bcachefs/fs-io.c
index 485d26b35e34..34c83f2386a8 100644
--- a/fs/bcachefs/fs-io.c
+++ b/fs/bcachefs/fs-io.c
@@ -855,8 +855,7 @@ retry:
if (ret)
break;
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
k = bkey_i_to_s_c(sk.k);
offset_into_extent = iter->pos.offset -
@@ -2522,8 +2521,7 @@ static long bchfs_fcollapse_finsert(struct bch_inode_info *inode,
bkey_cmp(k.k->p, POS(inode->v.i_ino, offset >> 9)) <= 0)
break;
reassemble:
- bkey_on_stack_realloc(&copy, c, k.k->u64s);
- bkey_reassemble(copy.k, k);
+ bkey_on_stack_reassemble(&copy, c, k);
if (insert &&
bkey_cmp(bkey_start_pos(k.k), move_pos) < 0) {
diff --git a/fs/bcachefs/io.c b/fs/bcachefs/io.c
index ca891b52706f..f483312acd0d 100644
--- a/fs/bcachefs/io.c
+++ b/fs/bcachefs/io.c
@@ -1536,8 +1536,7 @@ retry:
if (bkey_err(k))
goto err;
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
k = bkey_i_to_s_c(sk.k);
bch2_trans_unlock(&trans);
@@ -1588,8 +1587,7 @@ retry:
BTREE_ITER_SLOTS, k, ret) {
unsigned bytes, sectors, offset_into_extent;
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
k = bkey_i_to_s_c(sk.k);
offset_into_extent = iter->pos.offset -
@@ -1712,8 +1710,7 @@ retry:
if (IS_ERR_OR_NULL(k.k))
goto out;
- bkey_on_stack_realloc(&new, c, k.k->u64s);
- bkey_reassemble(new.k, k);
+ bkey_on_stack_reassemble(&new, c, k);
k = bkey_i_to_s_c(new.k);
if (bversion_cmp(k.k->version, rbio->version) ||
@@ -2220,8 +2217,7 @@ retry:
bkey_start_offset(k.k);
sectors = k.k->size - offset_into_extent;
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
k = bkey_i_to_s_c(sk.k);
ret = bch2_read_indirect_extent(&trans,
diff --git a/fs/bcachefs/migrate.c b/fs/bcachefs/migrate.c
index 4dacbd637d02..4b59dcd04cce 100644
--- a/fs/bcachefs/migrate.c
+++ b/fs/bcachefs/migrate.c
@@ -60,8 +60,7 @@ static int __bch2_dev_usrdata_drop(struct bch_fs *c, unsigned dev_idx, int flags
continue;
}
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
ret = drop_dev_ptrs(c, bkey_i_to_s(sk.k),
dev_idx, flags, false);
diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c
index acdc1730e218..fad3cc4d587c 100644
--- a/fs/bcachefs/move.c
+++ b/fs/bcachefs/move.c
@@ -579,8 +579,7 @@ peek:
}
/* unlock before doing IO: */
- bkey_on_stack_realloc(&sk, c, k.k->u64s);
- bkey_reassemble(sk.k, k);
+ bkey_on_stack_reassemble(&sk, c, k);
k = bkey_i_to_s_c(sk.k);
bch2_trans_unlock(&trans);
diff --git a/fs/bcachefs/reflink.c b/fs/bcachefs/reflink.c
index 4de65bf70362..2812fa305c0e 100644
--- a/fs/bcachefs/reflink.c
+++ b/fs/bcachefs/reflink.c
@@ -225,8 +225,7 @@ s64 bch2_remap_range(struct bch_fs *c,
break;
if (src_k.k->type == KEY_TYPE_extent) {
- bkey_on_stack_realloc(&new_src, c, src_k.k->u64s);
- bkey_reassemble(new_src.k, src_k);
+ bkey_on_stack_reassemble(&new_src, c, src_k);
src_k = bkey_i_to_s_c(new_src.k);
bch2_cut_front(src_iter->pos, new_src.k);