Skip to content

Commit 6f9a7fa

Browse files
committed
CP-13861: Use a transaction when writing the guest agent xenstore keys
Signed-off-by: John Else <[email protected]>
1 parent 0bc1d2e commit 6f9a7fa

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

xc/xenops_server_xen.ml

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -518,27 +518,28 @@ module HOST = struct
518518
}) in
519519
with_xs
520520
(fun xs ->
521-
xs.Xs.rm root;
522-
let write_with_perms key value =
523-
xs.Xs.write key value;
524-
xs.Xs.setperms key perms
525-
in
526-
write_with_perms root "";
527-
List.iter (fun feature ->
528-
let feature_root = Filename.concat root feature.Host.name in
529-
let parameters_root = Filename.concat feature_root "parameters" in
530-
write_with_perms feature_root "";
531-
write_with_perms parameters_root "";
532-
write_with_perms
533-
(Filename.concat feature_root "licensed")
534-
(if feature.Host.licensed then "1" else "0");
535-
List.iter
536-
(fun (key, value) ->
537-
write_with_perms
538-
(Filename.concat parameters_root key)
539-
value)
540-
feature.Host.parameters)
541-
features)
521+
Xs.transaction xs (fun t ->
522+
t.Xst.rm root;
523+
let write_with_perms key value =
524+
t.Xst.write key value;
525+
t.Xst.setperms key perms
526+
in
527+
write_with_perms root "";
528+
List.iter (fun feature ->
529+
let feature_root = Filename.concat root feature.Host.name in
530+
let parameters_root = Filename.concat feature_root "parameters" in
531+
write_with_perms feature_root "";
532+
write_with_perms parameters_root "";
533+
write_with_perms
534+
(Filename.concat feature_root "licensed")
535+
(if feature.Host.licensed then "1" else "0");
536+
List.iter
537+
(fun (key, value) ->
538+
write_with_perms
539+
(Filename.concat parameters_root key)
540+
value)
541+
feature.Host.parameters)
542+
features))
542543
end
543544

544545
module VM = struct

0 commit comments

Comments
 (0)