|
@@ -1288,7 +1288,7 @@ xfs_mountfs(
|
|
|
XFS_FSB_TO_BB(mp, sbp->sb_logblocks));
|
|
|
if (error) {
|
|
|
xfs_warn(mp, "log mount failed");
|
|
|
- goto out_free_perag;
|
|
|
+ goto out_fail_wait;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1315,7 +1315,7 @@ xfs_mountfs(
|
|
|
!mp->m_sb.sb_inprogress) {
|
|
|
error = xfs_initialize_perag_data(mp, sbp->sb_agcount);
|
|
|
if (error)
|
|
|
- goto out_free_perag;
|
|
|
+ goto out_fail_wait;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1439,6 +1439,10 @@ xfs_mountfs(
|
|
|
IRELE(rip);
|
|
|
out_log_dealloc:
|
|
|
xfs_log_unmount(mp);
|
|
|
+ out_fail_wait:
|
|
|
+ if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp)
|
|
|
+ xfs_wait_buftarg(mp->m_logdev_targp);
|
|
|
+ xfs_wait_buftarg(mp->m_ddev_targp);
|
|
|
out_free_perag:
|
|
|
xfs_free_perag(mp);
|
|
|
out_remove_uuid:
|