• Kent Overstreet's avatar
    bcachefs: Fix race between btree writes and metadata drop · 2111f394
    Kent Overstreet authored
    btree writes update the btree node key after every write, in order to
    update sectors_written, and they also might need to drop pointers if one
    of the writes failed in a replicated btree node.
    
    But the btree node might also have had a pointer dropped while the write
    was in flight, by bch2_dev_metadata_drop(), and thus there was a bug
    where the btree node write would ovewrite the btree node's key with what
    it had at the start of the write.
    
    Fix this by dropping pointers not currently in the btree node key.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    2111f394
btree_update_interior.c 64.8 KB