bcache: Don't return -EINTR when insert finished
We need to return -EINTR after a split because we invalidated iterators (and freed the btree node) - but if we were finished inserting, we don't want to redo the traversal. Signed-off-by: Kent Overstreet <kmo@daterainc.com>
This commit is contained in:
parent
e0a985a4b1
commit
3b3e9e50dd
|
@ -2002,8 +2002,10 @@ static int bch_btree_insert_node(struct btree *b, struct btree_op *op,
|
||||||
return -EINTR;
|
return -EINTR;
|
||||||
} else {
|
} else {
|
||||||
/* Invalidated all iterators */
|
/* Invalidated all iterators */
|
||||||
return btree_split(b, op, insert_keys, replace_key) ?:
|
int ret = btree_split(b, op, insert_keys, replace_key);
|
||||||
-EINTR;
|
|
||||||
|
return bch_keylist_empty(insert_keys) ?
|
||||||
|
0 : ret ?: -EINTR;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BUG_ON(write_block(b) != btree_bset_last(b));
|
BUG_ON(write_block(b) != btree_bset_last(b));
|
||||||
|
|
Loading…
Reference in New Issue