• Boris Burkov's avatar
    btrfs: track owning root in btrfs_ref · 457cb1dd
    Boris Burkov authored
    While data extents require us to store additional inline refs to track
    the original owner on free, this information is available implicitly for
    metadata. It is found in the owner field of the header of the tree
    block. Even if other trees refer to this block and the original ref goes
    away, we will not rewrite that header field, so it will reliably give the
    original owner.
    
    In addition, there is a relocation case where a new data extent needs to
    have an owning root separate from the referring root wired through
    delayed refs.
    
    To use it for recording simple quota deltas, we need to wire this root
    id through from when we create the delayed ref until we fully process
    it. Store it in the generic btrfs_ref struct of the delayed ref.
    Signed-off-by: default avatarBoris Burkov <boris@bur.io>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    457cb1dd
extent-tree.c 168 KB