# HG changeset patch # User David Scott # Date 1259595837 0 # Node ID d2d2c13b70f543e423d6652ac5025c82cd52f25d # Parent 94920cc0874527f6b9186542ded1d7ecb4186cbe CA-31528: Specialise the Xal DevEject event to be VBD-specific ("vbd" and "tap" but not "vif"). Signed-off-by: David Scott diff -r 94920cc08745 -r d2d2c13b70f5 ocaml/xapi/events.ml --- a/ocaml/xapi/events.ml Mon Nov 30 15:43:56 2009 +0000 +++ b/ocaml/xapi/events.ml Mon Nov 30 15:43:57 2009 +0000 @@ -403,7 +403,7 @@ | Xal.HotplugChanged("vif", _, _, _) | Xal.DevShutdownDone(_, _) | Xal.DevThread(("vbd" | "tap"), _, _) - | Xal.DevEject(("vbd" | "tap"), _) + | Xal.DevEject(_) | Xal.ChangeRtc(_, _) | Xal.Message(_, _, _, _) | Xal.ChangeUncooperative _ -> true @@ -474,7 +474,7 @@ debug "ignoring because VBD does not exist in DB" end - | Xal.DevEject (ty, devid) when ty = "vbd" || ty = "tap" -> + | Xal.DevEject devid -> let vm = vm_of_domid ~__context domid in begin try @@ -483,7 +483,7 @@ Vbdops.eject_vbd ~__context ~self:vbd in debug "Adding Vbdops.eject_vbd to queue"; - let description = Printf.sprintf "DevEject(%s, %s) domid %d" ty devid domid in + let description = Printf.sprintf "DevEject(%s) domid %d" devid domid in push vm Local_work_queue.normal_vm_queue description work_item; with Xen_helpers.Device_has_no_VBD -> debug "ignoring because VBD does not exist in DB" diff -r 94920cc08745 -r d2d2c13b70f5 ocaml/xenops/xal.ml --- a/ocaml/xenops/xal.ml Mon Nov 30 15:43:56 2009 +0000 +++ b/ocaml/xenops/xal.ml Mon Nov 30 15:43:57 2009 +0000 @@ -28,7 +28,7 @@ type dev_event = (* devices : backend / type / devid *) - | DevEject of string * string + | DevEject of string (* device thread start : type / devid / pid *) | DevThread of string * string * int (* blkback and blktap now provide an explicit flush signal (type / devid) *) @@ -67,8 +67,8 @@ let string_of_string_opt = function None -> "\"\"" | Some s -> s in let string_of_b b = if b then "B" else "F" in match ev with - | DevEject (s, i) -> - sprintf "device eject {%s,%s}" s i + | DevEject i -> + sprintf "device eject {%s}" i | DevThread (s, i, pid) -> sprintf "device thread {%s,%s} pid=%d" s i pid | DevShutdownDone (s, i) -> @@ -429,10 +429,10 @@ end | "" :: "local" :: "domain" :: "0" :: "backend" :: ty :: domid :: devid :: [ "shutdown-done" ] -> Some (int_of_string domid, BackShutdown, ty, devid) - | "" :: "local" :: "domain" :: "0" :: "backend" :: ty :: domid :: devid :: [ "params" ] -> + | "" :: "local" :: "domain" :: "0" :: "backend" :: ( "vbd" | "tap" ) :: domid :: devid :: [ "params" ] -> begin try if xs.Xs.read w = "" then - Some (int_of_string domid, BackEject, ty, devid) + Some (int_of_string domid, BackEject, "", devid) else None with _ -> @@ -565,8 +565,8 @@ ctx.callback_devices ctx (-1) (Message (uuid, name, priority, body)) | Some (domid, BackThread (pid), ty, devid) -> ctx.callback_devices ctx domid (DevThread (ty, devid, pid)) - | Some (domid, BackEject, ty, devid) -> - ctx.callback_devices ctx domid (DevEject (ty, devid)) + | Some (domid, BackEject, _, devid) -> + ctx.callback_devices ctx domid (DevEject (devid)) | Some (domid, ev, ty, devid) -> ( let devstate = get_devstate ctx domid ty devid in diff -r 94920cc08745 -r d2d2c13b70f5 ocaml/xenops/xal.mli --- a/ocaml/xenops/xal.mli Mon Nov 30 15:43:56 2009 +0000 +++ b/ocaml/xenops/xal.mli Mon Nov 30 15:43:57 2009 +0000 @@ -37,7 +37,7 @@ exception Timeout type dev_event = - | DevEject of string * string + | DevEject of string | DevThread of string * string * int | DevShutdownDone of string * string | ChangeRtc of string * string