xfs: remove xlog_recover_iodone

The log recovery I/O completion handler does not substancially differ from
the normal one except for the fact that it:

 a) never retries failed writes
 b) can have log items that aren't on the AIL
 c) never has inode/dquot log items attached and thus don't need to
    handle them

Add conditionals for (a) and (b) to the ioend code, while (c) doesn't
need special handling anyway.

Signed-off-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>
This commit is contained in:
Christoph Hellwig
2020-09-01 10:55:46 -07:00
committed by Darrick J. Wong
parent 55b7d7115f
commit 22c10589a1
5 changed files with 17 additions and 35 deletions

View File

@@ -265,31 +265,6 @@ xlog_header_check_mount(
return 0;
}
void
xlog_recover_iodone(
struct xfs_buf *bp)
{
if (!bp->b_error) {
bp->b_flags |= XBF_DONE;
} else if (!XFS_FORCED_SHUTDOWN(bp->b_mount)) {
/*
* We're not going to bother about retrying this during
* recovery. One strike!
*/
xfs_buf_ioerror_alert(bp, __this_address);
xfs_force_shutdown(bp->b_mount, SHUTDOWN_META_IO_ERROR);
}
/*
* On v5 supers, a bli could be attached to update the metadata LSN.
* Clean it up.
*/
if (bp->b_log_item)
xfs_buf_item_relse(bp);
ASSERT(bp->b_log_item == NULL);
bp->b_flags &= ~_XBF_LOGRECOVERY;
}
/*
* This routine finds (to an approximation) the first block in the physical
* log which contains the given cycle. It uses a binary search algorithm.