• Brian Foster's avatar
    xfs: use transaction for intent recovery instead of raw dfops · fbfa977d
    Brian Foster authored
    Log intent recovery is the last user of an external (on-stack)
    dfops. The pattern exists because the dfops is used to collect
    additional deferred operations queued during the whole recovery
    sequence. The dfops is finished with a new transaction after intent
    recovery completes.
    
    We already have a mechanism to create an empty, container-like
    transaction to support the scrub infrastructure. We can reuse that
    mechanism here to drop the final user of external dfops. This
    facilitates folding dfops state (i.e., dop_low) into the
    transaction, the elimination of now unused external dfops support
    and also eliminates the only caller of __xfs_defer_cancel().
    
    Replace the on-stack dfops with an empty transaction and pass it
    around to the various helpers that queue and finish deferred
    operations during intent recovery.
    Signed-off-by: default avatarBrian Foster <bfoster@redhat.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    fbfa977d
xfs_bmap_item.c 13 KB