projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
7fda0f0
)
bcachefs: Fix error path in bch2_snapshot_set_equiv()
author
Kent Overstreet
<kent.overstreet@gmail.com>
Mon, 28 Mar 2022 20:31:26 +0000
(16:31 -0400)
committer
Kent Overstreet
<kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:28 +0000
(17:09 -0400)
We weren't properly catching errors from snapshot_live() - oops.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/subvolume.c
patch
|
blob
|
history
diff --git
a/fs/bcachefs/subvolume.c
b/fs/bcachefs/subvolume.c
index 2c5f7e7793a736c06823623db44472bbf0c237a1..20c6b21e54d3be64e116278de01a751cdae47553 100644
(file)
--- a/
fs/bcachefs/subvolume.c
+++ b/
fs/bcachefs/subvolume.c
@@
-139,7
+139,7
@@
static int bch2_snapshots_set_equiv(struct btree_trans *trans)
for_each_btree_key(trans, iter, BTREE_ID_snapshots,
POS_MIN, 0, k, ret) {
u32 id = k.k->p.offset, child[2];
- unsigned nr_live = 0, live_idx;
+ unsigned nr_live = 0, live_idx
= 0
;
if (k.k->type != KEY_TYPE_snapshot)
continue;
@@
-151,7
+151,7
@@
static int bch2_snapshots_set_equiv(struct btree_trans *trans)
for (i = 0; i < 2; i++) {
ret = snapshot_live(trans, child[i]);
if (ret < 0)
-
break
;
+
goto err
;
if (ret)
live_idx = i;
@@
-162,6
+162,7
@@
static int bch2_snapshots_set_equiv(struct btree_trans *trans)
? snapshot_t(c, child[live_idx])->equiv
: id;
}
+err:
bch2_trans_iter_exit(trans, &iter);
if (ret)