statfs(&actual_statfs);
expected_statfs.total = actual_statfs.total;
expected_statfs.available = actual_statfs.available;
+ expected_statfs.internal_metadata = actual_statfs.internal_metadata;
+ expected_statfs.omap_allocated = actual_statfs.omap_allocated;
// walk PREFIX_OBJ
dout(1) << __func__ << " walking object keyspace" << dendl;
{
buf->reset();
+ buf->omap_allocated = db->estimate_prefix_size(PREFIX_OMAP);
+
uint64_t bfree = alloc->get_free();
+
if (bluefs) {
// part of our shared device is "free" according to BlueFS, but we
// can't touch bluestore_bluefs_min of it.
if (bluefs_shared_bdev != BlueFS::BDEV_DB) {
buf->total += bluefs->get_total(BlueFS::BDEV_DB);
}
+
+ // call any non-omap bluefs space "internal metadata"
+ buf->internal_metadata =
+ std::max(bluefs->get_used(), (uint64_t)cct->_conf->bluestore_bluefs_min)
+ - buf->omap_allocated;
}
{