xfs: fix bad dquot buffer size in log recovery readahead
authorDave Chinner <dchinner@redhat.com>
Tue, 27 Aug 2013 03:25:43 +0000 (13:25 +1000)
committerBen Myers <bpm@sgi.com>
Thu, 29 Aug 2013 15:51:35 +0000 (10:51 -0500)
commit0f0d334595105d982ea22ae1d5947723e462344f
treea370da8a2aa1e0ae7207b87fe5419fbc857c13e4
parent84a5b7300c724f4000f689c410aeae3242b4f034
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 <dchinner@redhat.com>
Reviewed-by: Ben Myers <bpm@sgi.com>
Signed-off-by: Ben Myers <bpm@sgi.com>
fs/xfs/xfs_log_recover.c