Commit 5906dcb9 authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: Silence read-only errors when deleting snapshots

parent 8b1f46bf
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -1563,6 +1563,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c)
	 */
	ret = for_each_btree_key(trans, iter, BTREE_ID_snapshots, POS_MIN, 0, k,
		check_should_delete_snapshot(trans, k, &delete_leaves, &delete_interior));
	if (!bch2_err_matches(ret, EROFS))
		bch_err_msg(c, ret, "walking snapshots");
	if (ret)
		goto err;
@@ -1602,6 +1603,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c)

		bch2_disk_reservation_put(c, &res);

		if (!bch2_err_matches(ret, EROFS))
			bch_err_msg(c, ret, "deleting keys from dying snapshots");
		if (ret)
			goto err;
@@ -1610,6 +1612,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c)
	darray_for_each(delete_leaves, i) {
		ret = commit_do(trans, NULL, NULL, 0,
			bch2_snapshot_node_delete(trans, *i));
		if (!bch2_err_matches(ret, EROFS))
			bch_err_msg(c, ret, "deleting snapshot %u", *i);
		if (ret)
			goto err;
@@ -1630,6 +1633,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c)
	darray_for_each(delete_interior, i) {
		ret = commit_do(trans, NULL, NULL, 0,
			bch2_snapshot_node_delete(trans, i->id));
		if (!bch2_err_matches(ret, EROFS))
			bch_err_msg(c, ret, "deleting snapshot %u", i->id);
		if (ret)
			goto err;
@@ -1638,6 +1642,7 @@ int bch2_delete_dead_snapshots(struct bch_fs *c)
	darray_exit(&delete_interior);
	darray_exit(&delete_leaves);
	bch2_trans_put(trans);
	if (!bch2_err_matches(ret, EROFS))
		bch_err_fn(c, ret);
	return ret;
}