diff options
Diffstat (limited to 'fs/xfs/xfs_log_recover.c')
| -rw-r--r-- | fs/xfs/xfs_log_recover.c | 13 | 
1 files changed, 11 insertions, 2 deletions
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index b6b669df40f..eae16920655 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -193,7 +193,10 @@ xlog_bread_noalign(  	bp->b_io_length = nbblks;  	bp->b_error = 0; -	xfsbdstrat(log->l_mp, bp); +	if (XFS_FORCED_SHUTDOWN(log->l_mp)) +		return XFS_ERROR(EIO); + +	xfs_buf_iorequest(bp);  	error = xfs_buf_iowait(bp);  	if (error)  		xfs_buf_ioerror_alert(bp, __func__); @@ -4397,7 +4400,13 @@ xlog_do_recover(  	XFS_BUF_READ(bp);  	XFS_BUF_UNASYNC(bp);  	bp->b_ops = &xfs_sb_buf_ops; -	xfsbdstrat(log->l_mp, bp); + +	if (XFS_FORCED_SHUTDOWN(log->l_mp)) { +		xfs_buf_relse(bp); +		return XFS_ERROR(EIO); +	} + +	xfs_buf_iorequest(bp);  	error = xfs_buf_iowait(bp);  	if (error) {  		xfs_buf_ioerror_alert(bp, __func__);  | 
