xfs: fix bad dquot buffer size in log recovery readahead
PATCH 1/1 xfs: fix bad dquot buffer size in log recovery readahead
From: Dave Chinner <[email protected]>
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.
--- fs/xfs/xfs_log_recover.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
fs/xfs/xfs_log_recover.c +1 -1
@@ -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
Signature · 6 lines
1.8.3.2 _______________________________________________ xfs mailing list [email protected] http://oss.sgi.com/mailman/listinfo/xfs
Quoted 8 lines · Dave Chinner
From: Dave Chinner <[email protected]>
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
Quoted 8 lines
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_readaheadis 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 <[email protected]>
Looks good.
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs
Quoted 16 lines · Ben Myers
Quoted 15 lines · Dave Chinner
From: Dave Chinner <[email protected]>
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: 548while 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_readaheadis in units of filesystem blocks, not disk blocks. (i.e. FSB, not daddr). Fix it but putting the correct conversion in place.
Quoted 5 lines
Quoted 1 line
Signed-off-by Dave Chinner <[email protected]>Looks good.
Reviewed-by Ben Myers <[email protected]>
Also applied this one...
_______________________________________________
xfs mailing list
[email protected]
http://oss.sgi.com/mailman/listinfo/xfs