> On 20 Oct 2022, at 17:54, Edwin Török <edvin.to...@citrix.com> wrote:
> 
> During live update we will load the /tool/xenstored path from the previous 
> binary,
> and then try to mkdir /tool again which will fail with EEXIST.
> Check for existence of the path before creating it.
> 
> The write call to /tool/xenstored should not need any changes
> (and we do want to overwrite any previous path, in case it changed).
> 
> Prior to 7110192b1df6 live update would work only if the binary path was
> specified, and with 7110192b1df6 and this live update also works when
> no binary path is specified in `xenstore-control live-update`.
> 
> Fixes: 7110192b1df6 ("tools/oxenstored: Fix Oxenstored Live Update")
> Signed-off-by: Edwin Török <edvin.to...@citrix.com>
> ---
> tools/ocaml/xenstored/xenstored.ml | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/ocaml/xenstored/xenstored.ml 
> b/tools/ocaml/xenstored/xenstored.ml
> index fc90fcdeb5..3299fe73f7 100644
> --- a/tools/ocaml/xenstored/xenstored.ml
> +++ b/tools/ocaml/xenstored/xenstored.ml
> @@ -353,7 +353,9 @@ let _ =
>       ) in
> 
>       (* required for xenstore-control to detect availability of live-update 
> *)
> -     Store.mkdir store Perms.Connection.full_rights (Store.Path.of_string 
> "/tool");
> +     let tool_path = Store.Path.of_string "/tool" in
> +     if not (Store.path_exists store tool_path) then
> +                                     Store.mkdir store 
> Perms.Connection.full_rights tool_path;
>       Store.write store Perms.Connection.full_rights
>               (Store.Path.of_string "/tool/xenstored") Sys.executable_name;

I notice inconsistent indentation but let's ignore that or fix it before the 
committing.

Acked-by: Christian Lindig <christian.lin...@citrix.com>

Reply via email to