Signed-off-by: Matthias Goergens <[email protected]>

 mlvm/vg.ml |  77 +++++++++++++++++++++++++++++++------------------------------
 1 files changed, 39 insertions(+), 38 deletions(-)


# HG changeset patch
# User Matthias Goergens <[email protected]>
# Date 1274194687 -3600
# Node ID 503f75bdf4a1d52050d6820a638bbf83fc7467d2
# Parent  aeaa34b7611dd4192f7941f74f06cffb63e0a3fa
vg.ml was rid of warnings.

Signed-off-by: Matthias Goergens <[email protected]>

diff --git a/mlvm/vg.ml b/mlvm/vg.ml
--- a/mlvm/vg.ml
+++ b/mlvm/vg.ml
@@ -255,9 +255,9 @@ let lv_activate_internal name dm_map der
       with _ ->
 	let fd = Unix.openfile fname [Unix.O_RDWR; Unix.O_CREAT] 0o644 in
 (*	let size = Int64.mul Constants.extent_size (Lv.size_in_extents lv) in
-	if !Constants.full_provision then 
-	  ignore(Unix.LargeFile.lseek fd (Int64.sub size 1L) Unix.SEEK_SET);*)
-	Unix.write fd "\000" 0 1;
+	if !Constants.full_provision
+	then ignore(Unix.LargeFile.lseek fd (Int64.sub size 1L) Unix.SEEK_SET);*)
+	ignore(Unix.write fd "\000" 0 1);
 	Unix.close fd;
     end;
     (* Let's also make sure that the dir exists for the dev node! *)
@@ -279,9 +279,9 @@ let lv_deactivate_internal nod dm_name =
   Unix.unlink nod
     
 let lv_deactivate vg lv =
-  let dm_name = dm_name_of vg lv in
-  let nod = dev_path_of_dm_name dm_name in
-  lv_deactivate_internal None dm_name
+	let dm_name = dm_name_of vg lv in
+	(ignore (dev_path_of_dm_name dm_name);
+	 lv_deactivate_internal None dm_name)
 
 let lv_change_internal dm_name dm_map dereference_table =
   Camldm.reload dm_name dm_map dereference_table;
@@ -309,20 +309,21 @@ let get_absolute_pos_of_sector vg lv sec
   find 0 sector_num
       
 let with_open_redo vg f =
-  let Some lv_name = vg.redo_lv in
-  let lv = List.find (fun lv -> lv.Lv.name=lv_name) vg.lvs in
-  let dev = (List.hd vg.pvs).Pv.dev in
-  let (dev,pos) = 
-    if !Constants.dummy_mode then 
-      (Printf.sprintf "%s/%s/redo" !Constants.dummy_base dev,0L)
-    else 
-      get_absolute_pos_of_sector vg lv 0L in  
-  let fd = Unix.openfile dev [Unix.O_RDWR; Unix.O_CREAT] 0o644 in
-  Pervasiveext.finally (fun () -> f (fd,pos)) (fun () -> Unix.close fd)
+	match vg.redo_lv with
+	| Some lv_name -> 
+		let lv = List.find (fun lv -> lv.Lv.name=lv_name) vg.lvs in
+		let dev = (List.hd vg.pvs).Pv.dev in
+		let (dev,pos) = 
+			if !Constants.dummy_mode
+			then (Printf.sprintf "%s/%s/redo" !Constants.dummy_base dev,0L)
+			else get_absolute_pos_of_sector vg lv 0L in  
+		let fd = Unix.openfile dev [Unix.O_RDWR; Unix.O_CREAT] 0o644 in
+		Pervasiveext.finally (fun () -> f (fd,pos)) (fun () -> Unix.close fd)
+	| None -> failwith "vg.ml/with_open_redo: vg.redo_lv == None, but should not be."
 
 let read_redo vg =
-  with_open_redo vg (fun (fd,pos) ->
-    Redo.read fd pos (Constants.extent_size))
+	with_open_redo vg (fun (fd,pos) ->
+				   Redo.read fd pos (Constants.extent_size))
 
 let write_redo vg =
   with_open_redo vg (fun (fd,pos) ->
@@ -426,26 +427,26 @@ let of_metadata config pvdatas =
   if got_redo_lv then apply_redo vg else vg
 
 let create_new name devices_and_names =
-  let pvs = List.map (fun (dev,name) -> Pv.create_new dev name) devices_and_names in
-  debug "PVs created";
-  let free_space = List.flatten (List.map (fun pv -> Allocator.create pv.Pv.name pv.Pv.pe_count) pvs) in
-  let vg = 
-    { name=name;
-      id=Lvm_uuid.create ();
-      seqno=1;
-      status=[Read; Write];
-      extent_size=Constants.extent_size_in_sectors;
-      max_lv=0;
-      max_pv=0;
-      pvs=pvs;
-      lvs=[];
-      free_space=free_space;
-      redo_lv=None;
-      ops=[];
-    }
-  in
-  write vg true;
-  debug "VG created"
+	let pvs = List.map (fun (dev,name) -> Pv.create_new dev name) devices_and_names in
+	debug "PVs created";
+	let free_space = List.flatten (List.map (fun pv -> Allocator.create pv.Pv.name pv.Pv.pe_count) pvs) in
+	let vg = 
+		{ name=name;
+		id=Lvm_uuid.create ();
+		seqno=1;
+		status=[Read; Write];
+		extent_size=Constants.extent_size_in_sectors;
+		max_lv=0;
+		max_pv=0;
+		pvs=pvs;
+		lvs=[];
+		free_space=free_space;
+		redo_lv=None;
+		ops=[];
+		}
+	in
+	ignore (write vg true);
+	debug "VG created"
 
 let parse text pvdatas =
   let lexbuf = Lexing.from_string text in
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to