Hi Edwin, > -----Original Message----- > From: Edwin Török <edvin.to...@citrix.com> > Subject: [PATCH for-4.17] tools/ocaml/xenstored: fix live update exception > > 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>
As per [1] described, I think it is quite reasonable to include this patch for 4.17, as this patch is a bugfix and the patch in [1] already have the ack and release ack. Although I would also like to hear the opinion from Christian (the ocaml maintainer) to just play safe. [1] https://lore.kernel.org/xen-devel/f65c8e58-ef3d-47d9-a94e-7b70eb93e...@citrix.com/ Release-acked-by: Henry Wang <henry.w...@arm.com> Kind regards, Henry > --- > 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; > > > base-commit: 0c06760be3dc3f286015e18c4b1d1694e55da026 > -- > 2.34.1