|
@@ -2360,7 +2360,8 @@ static void
|
|
|
xlog_recover_validate_buf_type(
|
|
|
struct xfs_mount *mp,
|
|
|
struct xfs_buf *bp,
|
|
|
- xfs_buf_log_format_t *buf_f)
|
|
|
+ xfs_buf_log_format_t *buf_f,
|
|
|
+ xfs_lsn_t current_lsn)
|
|
|
{
|
|
|
struct xfs_da_blkinfo *info = bp->b_addr;
|
|
|
__uint32_t magic32;
|
|
@@ -2569,7 +2570,8 @@ xlog_recover_do_reg_buffer(
|
|
|
struct xfs_mount *mp,
|
|
|
xlog_recover_item_t *item,
|
|
|
struct xfs_buf *bp,
|
|
|
- xfs_buf_log_format_t *buf_f)
|
|
|
+ xfs_buf_log_format_t *buf_f,
|
|
|
+ xfs_lsn_t current_lsn)
|
|
|
{
|
|
|
int i;
|
|
|
int bit;
|
|
@@ -2642,7 +2644,7 @@ xlog_recover_do_reg_buffer(
|
|
|
/* Shouldn't be any more regions */
|
|
|
ASSERT(i == item->ri_total);
|
|
|
|
|
|
- xlog_recover_validate_buf_type(mp, bp, buf_f);
|
|
|
+ xlog_recover_validate_buf_type(mp, bp, buf_f, current_lsn);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -2685,7 +2687,7 @@ xlog_recover_do_dquot_buffer(
|
|
|
if (log->l_quotaoffs_flag & type)
|
|
|
return false;
|
|
|
|
|
|
- xlog_recover_do_reg_buffer(mp, item, bp, buf_f);
|
|
|
+ xlog_recover_do_reg_buffer(mp, item, bp, buf_f, NULLCOMMITLSN);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -2773,7 +2775,7 @@ xlog_recover_buffer_pass2(
|
|
|
*/
|
|
|
lsn = xlog_recover_get_buf_lsn(mp, bp);
|
|
|
if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) {
|
|
|
- xlog_recover_validate_buf_type(mp, bp, buf_f);
|
|
|
+ xlog_recover_validate_buf_type(mp, bp, buf_f, NULLCOMMITLSN);
|
|
|
goto out_release;
|
|
|
}
|
|
|
|
|
@@ -2789,7 +2791,7 @@ xlog_recover_buffer_pass2(
|
|
|
if (!dirty)
|
|
|
goto out_release;
|
|
|
} else {
|
|
|
- xlog_recover_do_reg_buffer(mp, item, bp, buf_f);
|
|
|
+ xlog_recover_do_reg_buffer(mp, item, bp, buf_f, current_lsn);
|
|
|
}
|
|
|
|
|
|
/*
|