int t;
xfs_rtword_t *words;
- bitsperblock = mp->m_sb.sb_blocksize * NBBY;
+ bitsperblock = mp->m_blockwsize << XFS_NBWORDLOG;
words = malloc(mp->m_blockwsize << XFS_WORDLOG);
if (!words) {
dbprintf(_("could not allocate rtwords buffer\n"));
args.sumbp = iocur_top->bp;
ondisk = xfs_rsumblock_infoptr(&args, 0);
- memcpy(sfile, ondisk, mp->m_sb.sb_blocksize);
+ memcpy(sfile, ondisk, mp->m_blockwsize << XFS_WORDLOG);
pop_cur();
sfile += mp->m_blockwsize;
}
args.rbmbp = bp;
ondisk = xfs_rbmblock_wordptr(&args, 0);
- memcpy(ondisk, bmp, mp->m_sb.sb_blocksize);
+ memcpy(ondisk, bmp, mp->m_blockwsize << XFS_WORDLOG);
libxfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1);
args.sumbp = bp;
ondisk = xfs_rsumblock_infoptr(&args, 0);
- memcpy(ondisk, smp, mp->m_sb.sb_blocksize);
+ memcpy(ondisk, smp, mp->m_blockwsize << XFS_WORDLOG);
libxfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1);
return;
/*
- * realtime init -- blockmap initialization is
- * handled by incore_init()
+ * Allocate buffers for formatting the collected rt free space
+ * information. The rtbitmap buffer must be large enough to compare
+ * against any unused bytes in the last block of the file.
*/
wordcnt = libxfs_rtbitmap_wordcount(mp, mp->m_sb.sb_rextents);
btmcompute = calloc(wordcnt, sizeof(union xfs_rtword_raw));
ASSERT(mp->m_rbmip == NULL);
- bitsperblock = mp->m_sb.sb_blocksize * NBBY;
+ bitsperblock = mp->m_blockwsize << XFS_NBWORDLOG;
extno = start_ext = 0;
bmbno = in_extent = start_bmbno = 0;
break;
}
- if (memcmp(bp->b_addr, buf, mp->m_sb.sb_blocksize))
+ if (memcmp(bp->b_addr, buf, mp->m_blockwsize << XFS_WORDLOG))
do_warn(_("discrepancy in %s at dblock 0x%llx\n"),
filename, (unsigned long long)bno);