From 0f0d334595105d982ea22ae1d5947723e462344f Mon Sep 17 00:00:00 2001 From: Dave Chinner Date: Tue, 27 Aug 2013 13:25:43 +1000 Subject: xfs: fix bad dquot buffer size in log recovery readahead xfstests xfs/087 fails 100% reliably with this assert: XFS (vdb): Mounting Filesystem XFS (vdb): Starting recovery (logdev: internal) XFS: Assertion failed: bp->b_flags & XBF_STALE, file: fs/xfs/xfs_buf.c, line: 548 while trying to read a dquot buffer in xlog_recover_dquot_ra_pass2(). The issue is that the buffer length to read that is passed to xfs_buf_readahead is in units of filesystem blocks, not disk blocks. (i.e. FSB, not daddr). Fix it but putting the correct conversion in place. Signed-off-by: Dave Chinner Reviewed-by: Ben Myers Signed-off-by: Ben Myers --- fs/xfs/xfs_log_recover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'fs/xfs') diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 90b756f7117c..006ee288246d 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -3202,7 +3202,7 @@ xlog_recover_dquot_ra_pass2( ASSERT(dq_f->qlf_len == 1); xfs_buf_readahead(mp->m_ddev_targp, dq_f->qlf_blkno, - dq_f->qlf_len, NULL); + XFS_FSB_TO_BB(mp, dq_f->qlf_len), NULL); } STATIC void -- cgit v1.2.3