• Chris Mason's avatar
    Btrfs: Don't allow written blocks from this transaction to be reallocated · 6bc34676
    Chris Mason authored
    When a block is freed, it can be immediately reused if it is from
    the current transaction.  But, an extra check is required to make sure
    the block had not been written yet.  If it were reused after being written,
    the transid in the block header might match the transid of the
    next time the block was allocated.
    
    The parent node records the transaction ID of the block it is pointing to,
    and this is used as part of validating the block on reads.  So, there
    can only be one version of a block per transaction.
    Signed-off-by: default avatarChris Mason <chris.mason@oracle.com>
    6bc34676
extent-tree.c 73.1 KB