if (cache_node_get(libxfs_bcache, &key, (struct cache_node **)&bp)) {
#ifdef IO_DEBUG
- fprintf(stderr, "%s: allocated buffer, key=%llu(%llu), %p\n",
- __FUNCTION__, BBTOB(len), LIBXFS_BBTOOFF64(blkno), blkno, buf);
+ fprintf(stderr, "%s: allocated %ubytes buffer, key=%llu(%llu), %p\n",
+ __FUNCTION__, BBTOB(len),
+ (long long)LIBXFS_BBTOOFF64(blkno), (long long)blkno, bp);
#endif
libxfs_initbuf(bp, device, blkno, bytes);
}
}
#ifdef IO_DEBUG
fprintf(stderr, "readbufr read %ubytes, blkno=%llu(%llu), %p\n",
- bytes, LIBXFS_BBTOOFF64(blkno), blkno, bp);
+ bytes, (long long)LIBXFS_BBTOOFF64(blkno), (long long)blkno, bp);
#endif
if (bp->b_dev == dev &&
bp->b_blkno == blkno &&
}
#ifdef IO_DEBUG
fprintf(stderr, "writebufr wrote %ubytes, blkno=%llu(%llu), %p\n",
- bp->b_bcount, LIBXFS_BBTOOFF64(bp->b_blkno), bp->b_blkno, bp);
+ bp->b_bcount, (long long)LIBXFS_BBTOOFF64(bp->b_blkno),
+ (long long)bp->b_blkno, bp);
#endif
bp->b_flags |= LIBXFS_B_UPTODATE;
bp->b_flags &= ~(LIBXFS_B_DIRTY | LIBXFS_B_EXIT);
if (boff + len > bp->b_bcount) {
fprintf(stderr, "Badness, iomove out of range!\n"
"bp=(bno %llu, bytes %u) range=(boff %u, bytes %u)\n",
- bp->b_blkno, bp->b_bcount, boff, len);
+ (long long)bp->b_blkno, bp->b_bcount, boff, len);
abort();
}
#endif
cache_purge(libxfs_bcache);
}
-void
+void
libxfs_bcache_flush(void)
{
cache_flush(libxfs_bcache);
}
/*
- * If we're the last node at our level, check that the last child
+ * If we're the last node at our level, check that the last child
* block's forward sibling pointer is NULL.
*/
if (check_dups == 0 &&
ASSERT(sb_dirty == 0 || (sb_dirty && !no_modify));
if (sb_dirty && !no_modify) {
+ if (agno == 0)
+ memcpy(&mp->m_sb, sb, sizeof(xfs_sb_t));
libxfs_xlate_sb(XFS_BUF_PTR(sbbuf), sb, -1, XFS_SB_ALL_BITS);
libxfs_writebuf(sbbuf, 0);
} else