xfs: move the ioerror check out of xlog_state_clean_iclog

Use the shutdown flag in the log to bypass xlog_state_clean_iclog
entirely in case of a shut down log.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
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-03-20 08:49:21 -07:00 committed by Darrick J. Wong
parent c814b4f24e
commit 5781464bd1

View File

@ -2632,8 +2632,7 @@ xlog_state_clean_iclog(
{
int iclogs_changed = 0;
if (dirty_iclog->ic_state != XLOG_STATE_IOERROR)
dirty_iclog->ic_state = XLOG_STATE_DIRTY;
dirty_iclog->ic_state = XLOG_STATE_DIRTY;
xlog_state_activate_iclogs(log, &iclogs_changed);
wake_up_all(&dirty_iclog->ic_force_wait);
@ -2838,8 +2837,10 @@ xlog_state_do_callback(
*/
cycled_icloglock = true;
xlog_state_do_iclog_callbacks(log, iclog);
xlog_state_clean_iclog(log, iclog);
if (XLOG_FORCED_SHUTDOWN(log))
wake_up_all(&iclog->ic_force_wait);
else
xlog_state_clean_iclog(log, iclog);
iclog = iclog->ic_next;
} while (first_iclog != iclog);