bcachefs: Fix implementation of KEY_TYPE_error
authorKent Overstreet <kent.overstreet@gmail.com>
Wed, 13 Oct 2021 17:12:26 +0000 (13:12 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:13 +0000 (17:09 -0400)
commitb9a7d8ac5f6d66619de8a4e37b23574d1ca107cf
tree70189df972d3b56cfd85cb81ac5b85262dded1d3
parent776eaddb2cef366b16dac8857899dbb4cc5dfdb1
bcachefs: Fix implementation of KEY_TYPE_error

When force-removing a device, we were silently dropping extents that we
no longer had pointers for - we should have been switching them to
KEY_TYPE_error, so that reads for data that was lost return errors.

This patch adds the logic for switching a key to KEY_TYPE_error to
bch2_bkey_drop_ptr(), and improves the logic somewhat.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/btree_gc.c
fs/bcachefs/extents.c
fs/bcachefs/extents.h
fs/bcachefs/move.c