]> xenbits.xensource.com Git - xcp/xen-api-libs.git/commitdiff
Fix a problem with the MLVM allocator where it was doing a physical equality rather...
authorJon Ludlam <Jonathan.Ludlam@eu.citrix.com>
Tue, 12 Oct 2010 11:11:57 +0000 (12:11 +0100)
committerJon Ludlam <Jonathan.Ludlam@eu.citrix.com>
Tue, 12 Oct 2010 11:11:57 +0000 (12:11 +0100)
Signed-off-by: Jon Ludlam <Jonathan.Ludlam@eu.citrix.com>
mlvm/allocator.ml
mlvm/vg.ml

index 1c3ed2857ce169d02417caeed24109fda4115dc6..f8b829843fe951ec8e7ee8660888773c86b5d881 100644 (file)
@@ -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
index 6c50e2ad901152da6cdf84c7f6288cae578e695d..152ab29c736feab552e46a3c9a2fd315ea214f52 100644 (file)
@@ -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