git.annexia.org
/
virt-df.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Detect Linux software suspend partitions (thanks Stephen Tweedie).
[virt-df.git]
/
lib
/
diskimage.ml
diff --git
a/lib/diskimage.ml
b/lib/diskimage.ml
index
30a7a39
..
6f9ef1f
100644
(file)
--- a/
lib/diskimage.ml
+++ b/
lib/diskimage.ml
@@
-21,8
+21,15
@@
open Printf
open ExtList
open Unix
open ExtList
open Unix
+open Int63.Operators
+
include Diskimage_utils
include Diskimage_utils
+(* Use as the natural block size for disk images, but really we should
+ * use the 'blockdev -getbsz' command to find the real block size.
+ *)
+let disk_block_size = ~^512
+
let partition_types = [
Diskimage_mbr.plugin_id,
("MBR", Diskimage_mbr.probe);
let partition_types = [
Diskimage_mbr.plugin_id,
("MBR", Diskimage_mbr.probe);
@@
-33,6
+40,8
@@
let filesystem_types = [
("Linux ext2/3", Diskimage_ext2.probe);
Diskimage_linux_swap.plugin_id,
("Linux swap", Diskimage_linux_swap.probe);
("Linux ext2/3", Diskimage_ext2.probe);
Diskimage_linux_swap.plugin_id,
("Linux swap", Diskimage_linux_swap.probe);
+ Diskimage_linux_swsuspend.plugin_id,
+ ("Linux s/w suspend", Diskimage_linux_swsuspend.probe);
]
let lvm_types = [
]
let lvm_types = [
@@
-114,7
+123,7
@@
let list_lvs lvm_name devs =
let open_machine name disks =
let disks = List.map (
fun (name, path) ->
let open_machine name disks =
let disks = List.map (
fun (name, path) ->
- let dev = new block_device path in
+ let dev = new block_device path
disk_block_size (* XXX *)
in
{ d_name = name; d_dev = dev; d_content = `Unknown }
) disks in
{ m_name = name; m_disks = disks; m_lv_filesystems = [] }
{ d_name = name; d_dev = dev; d_content = `Unknown }
) disks in
{ m_name = name; m_disks = disks; m_lv_filesystems = [] }
@@
-126,6
+135,7
@@
let close_machine { m_disks = m_disks } =
let scan_machine ({ m_disks = m_disks } as machine) =
let m_disks = List.map (
fun ({ d_dev = dev } as disk) ->
let scan_machine ({ m_disks = m_disks } as machine) =
let m_disks = List.map (
fun ({ d_dev = dev } as disk) ->
+ let dev = (dev :> device) in
(* See if it is partitioned first. *)
let parts = probe_for_partitions dev in
match parts with
(* See if it is partitioned first. *)
let parts = probe_for_partitions dev in
match parts with
@@
-195,7
+205,7
@@
let scan_machine ({ m_disks = m_disks } as machine) =
let pvs_on_disks = List.filter_map (
function
| { d_dev = d_dev;
let pvs_on_disks = List.filter_map (
function
| { d_dev = d_dev;
- d_content = `PhysicalVolume pv } -> Some (pv,
d_dev
)
+ d_content = `PhysicalVolume pv } -> Some (pv,
(d_dev :> device)
)
| _ -> None
) m_disks in
let pvs_on_partitions = List.map (
| _ -> None
) m_disks in
let pvs_on_partitions = List.map (