[space map disk] Add get_nr_blocks_in_data_sm()
which just uses the root
This commit is contained in:
parent
2cf0c84ce3
commit
a21f97e405
@ -773,4 +773,15 @@ persistent_data::open_metadata_sm(transaction_manager &tm, void *root)
|
|||||||
checked_space_map::ptr(new sm_disk(store, tm, v))));
|
checked_space_map::ptr(new sm_disk(store, tm, v))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
block_address
|
||||||
|
persistent_data::get_nr_blocks_in_data_sm(transaction_manager &tm, void *root)
|
||||||
|
{
|
||||||
|
sm_root_disk d;
|
||||||
|
sm_root v;
|
||||||
|
|
||||||
|
::memcpy(&d, root, sizeof(d));
|
||||||
|
sm_root_traits::unpack(d, v);
|
||||||
|
return v.nr_blocks_;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
||||||
|
@ -36,6 +36,11 @@ namespace persistent_data {
|
|||||||
|
|
||||||
checked_space_map::ptr
|
checked_space_map::ptr
|
||||||
open_metadata_sm(transaction_manager &tm, void *root);
|
open_metadata_sm(transaction_manager &tm, void *root);
|
||||||
|
|
||||||
|
// Get the number of data blocks with minimal IO. Used when
|
||||||
|
// repairing to avoid the bulk of the space maps.
|
||||||
|
block_address
|
||||||
|
get_nr_blocks_in_data_sm(transaction_manager &tm, void *root);
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------
|
//----------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user