bcachefs: Handle dropping pointers in data_update path
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 9 Oct 2022 07:32:17 +0000 (03:32 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:42 +0000 (17:09 -0400)
commit1be887979bc12a6c88b33b0d53dfdc369bfa9d49
tree204a1391ae5ad3342f8026a69da401134261c88f
parent160dff6dad43d9428b1250f927721a9a8756cfd9
bcachefs: Handle dropping pointers in data_update path

Cached pointers are generally dropped, not moved: this led to an
assertion firing in the data update path when there were no new replicas
being written.

This path adds a data_options field for pointers to be dropped, and
tweaks move_extent() to check if we're only dropping pointers, not
writing new ones, before kicking off a data update operation.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/data_update.c
fs/bcachefs/data_update.h
fs/bcachefs/move.c