xfs: use ->t_dfops for recovery of [b|c]ui log items
authorBrian Foster <bfoster@redhat.com>
Thu, 12 Jul 2018 05:26:09 +0000 (22:26 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 12 Jul 2018 05:26:09 +0000 (22:26 -0700)
commit813d08cb6de0af43da40393aebff914d2de9e50e
tree1b24780e3f956f490b73b4c337f66537b6f0879f
parentc9cfdb381172174ade2445e7b468f1be550b1a44
xfs: use ->t_dfops for recovery of [b|c]ui log items

Log recovery passes down a central dfops structure to recovery
handlers for bui and cui log items. Each of these handlers allocates
and commits a transaction and defers any remaining operations to be
completed by the main recovery sequence.

Since dfops outlives the transaction in this context, set and clear
->t_dfops appropriately such that the *_finish_item() paths and
below (i.e., xfs_bmapi*()) can expect to find the dfops in the
transaction without it being committed with the dfops attached. This
is required because transaction commit expects that an associated
dfops is finished and in this context the dfops may be populated at
commit time.

Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_bmap_item.c
fs/xfs/xfs_refcount_item.c