> 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>