[btree_builder] Fix reference counts of btree nodes
A leaf node should be counted only if it is referenced by some internal nodes, since the leaves generated by <def> sections might be unshifted and merged with exclusive mappings or other shared defs, or they might not even be used by any of the devices if the xml was tampered. The internal nodes should be handled in the same manner. The new 'reserve' operation is designed for this purpose. Applications could reserve a block for later use, without setting its ref count immediately. This way saves the hassles of tracking unused leaves.
This commit is contained in:
@@ -330,7 +330,6 @@ pub fn restore(opts: ThinRestoreOptions) -> Result<()> {
|
||||
// Build data space map
|
||||
let data_sm_root = build_data_sm(&mut w, pass.data_sm.lock().unwrap().deref())?;
|
||||
|
||||
// FIXME: I think we need to decrement the shared leaves
|
||||
// Build metadata space map
|
||||
let metadata_sm_root = build_metadata_sm(&mut w)?;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user