From: Jon Ludlam Date: Tue, 12 Oct 2010 11:11:57 +0000 (+0100) Subject: Fix a problem with the MLVM allocator where it was doing a physical equality rather... X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=f9b37305eaf98c7f90efcef53c269bde2428c60f;p=xcp%2Fxen-api-libs.git Fix a problem with the MLVM allocator where it was doing a physical equality rather than a structural equality test Signed-off-by: Jon Ludlam --- diff --git a/mlvm/allocator.ml b/mlvm/allocator.ml index 1c3ed28..f8b8298 100644 --- a/mlvm/allocator.ml +++ b/mlvm/allocator.ml @@ -66,7 +66,7 @@ let contained : area -> area -> bool = let (name2, (start2, size2)) = unpack_area a2 in name=name2 && start >= start2 && Int64.add start size <= Int64.add start2 size2 -exception PVS_DONT_MATCH +exception PVS_DONT_MATCH of string * string (* assumes all areas stem from the same pv *) let normalize_single_pv areas = @@ -75,7 +75,7 @@ let normalize_single_pv areas = let merge1 (a1, acc) a2 = let (name, (start1, size1)) = unpack_area a1 and (name2, (start2, size2)) = unpack_area a2 in - if (name != name2) then raise PVS_DONT_MATCH + if (name <> name2) then raise (PVS_DONT_MATCH (name, name2)) else if (Int64.add start1 size1) = start2 then (make_area name start1 (Int64.add size1 size2), acc) else diff --git a/mlvm/vg.ml b/mlvm/vg.ml index 6c50e2a..152ab29 100644 --- a/mlvm/vg.ml +++ b/mlvm/vg.ml @@ -284,9 +284,11 @@ let lv_deactivate vg lv = lv_deactivate_internal None dm_name) let lv_change_internal dm_name dm_map dereference_table = - Camldm.reload dm_name dm_map dereference_table; - Camldm.suspend dm_name; - Camldm.resume dm_name + if not !Constants.dummy_mode then begin + Camldm.reload dm_name dm_map dereference_table; + Camldm.suspend dm_name; + Camldm.resume dm_name + end let with_active_lv vg lv use_tmp fn = let name = dm_name_of vg lv in