daemon: Reimplement ‘device_index’ API in OCaml.

This commit is contained in:
Richard W.M. Jones
2017-06-15 16:42:52 +01:00
parent 3027a33110
commit 70b6f33566
4 changed files with 14 additions and 25 deletions

View File

@@ -113,3 +113,14 @@ let is_whole_device device =
try ignore (stat devpath); true
with Unix_error ((ENOENT|ENOTDIR), _, _) -> false
let device_index device =
(* This is the algorithm which was used by the C version. Why
* can't we use drive_index from C_utils? XXX
*)
let rec loop i = function
| [] -> failwithf "%s: device not found" device
| dev :: devices when dev = device -> i
| _ :: devices -> loop (i+1) devices
in
loop 0 (list_devices ())