[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))));
|
||||
}
|
||||
|
||||
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
|
||||
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