summaryrefslogtreecommitdiff
path: root/system/xen/xsa/xsa206-4.8-0006-oxenstored-add-transaction-info-relevant-to-history-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'system/xen/xsa/xsa206-4.8-0006-oxenstored-add-transaction-info-relevant-to-history-.patch')
-rw-r--r--system/xen/xsa/xsa206-4.8-0006-oxenstored-add-transaction-info-relevant-to-history-.patch88
1 files changed, 0 insertions, 88 deletions
diff --git a/system/xen/xsa/xsa206-4.8-0006-oxenstored-add-transaction-info-relevant-to-history-.patch b/system/xen/xsa/xsa206-4.8-0006-oxenstored-add-transaction-info-relevant-to-history-.patch
deleted file mode 100644
index e9f23d62c1..0000000000
--- a/system/xen/xsa/xsa206-4.8-0006-oxenstored-add-transaction-info-relevant-to-history-.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From eedcaba31d907b889f571113e7d9739e5ce1e9e5 Mon Sep 17 00:00:00 2001
-From: Jonathan Davies <jonathan.davies@citrix.com>
-Date: Tue, 14 Mar 2017 12:17:38 +0000
-Subject: [PATCH 06/15] oxenstored: add transaction info relevant to
- history-tracking
-
-Specifically:
- * retain the original store (not just the root) in full transactions
- * store commit count at the time of the start of the transaction
-
-Reported-by: Juergen Gross <jgross@suse.com>
-Signed-off-by: Jonathan Davies <jonathan.davies@citrix.com>
-Reviewed-by: Thomas Sanders <thomas.sanders@citrix.com>
-Reviewed-by: Ian Jackson <ian.jackson@eu.citrix.com>
-Reviewed-by: Christian Lindig <christian.lindig@citrix.com>
----
- tools/ocaml/xenstored/process.ml | 2 +-
- tools/ocaml/xenstored/transaction.ml | 12 ++++++++----
- 2 files changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/tools/ocaml/xenstored/process.ml b/tools/ocaml/xenstored/process.ml
-index 7b60376..5f92044 100644
---- a/tools/ocaml/xenstored/process.ml
-+++ b/tools/ocaml/xenstored/process.ml
-@@ -301,7 +301,7 @@ let transaction_replay c t doms cons =
- | Transaction.No ->
- error "attempted to replay a non-full transaction";
- false
-- | Transaction.Full(id, oldroot, cstore) ->
-+ | Transaction.Full(id, oldstore, cstore) ->
- let tid = Connection.start_transaction c cstore in
- let new_t = Transaction.make tid cstore in
- let con = sprintf "r(%d):%s" id (Connection.get_domstr c) in
-diff --git a/tools/ocaml/xenstored/transaction.ml b/tools/ocaml/xenstored/transaction.ml
-index 6f758ff..b1791b3 100644
---- a/tools/ocaml/xenstored/transaction.ml
-+++ b/tools/ocaml/xenstored/transaction.ml
-@@ -73,12 +73,13 @@ let can_coalesce oldroot currentroot path =
-
- type ty = No | Full of (
- int * (* Transaction id *)
-- Store.Node.t * (* Original root *)
-+ Store.t * (* Original store *)
- Store.t (* A pointer to the canonical store: its root changes on each transaction-commit *)
- )
-
- type t = {
- ty: ty;
-+ start_count: int64;
- store: Store.t; (* This is the store that we change in write operations. *)
- quota: Quota.t;
- mutable paths: (Xenbus.Xb.Op.operation * Store.Path.t) list;
-@@ -87,10 +88,13 @@ type t = {
- mutable write_lowpath: Store.Path.t option;
- }
-
-+let counter = ref 0L
-+
- let make id store =
-- let ty = if id = none then No else Full(id, Store.get_root store, store) in
-+ let ty = if id = none then No else Full(id, Store.copy store, store) in
- {
- ty = ty;
-+ start_count = !counter;
- store = if id = none then store else Store.copy store;
- quota = Quota.copy store.Store.quota;
- paths = [];
-@@ -161,7 +165,7 @@ let commit ~con t =
- let has_commited =
- match t.ty with
- | No -> true
-- | Full (id, oldroot, cstore) -> (* "cstore" meaning current canonical store *)
-+ | Full (id, oldstore, cstore) -> (* "cstore" meaning current canonical store *)
- let commit_partial oldroot cstore store =
- (* get the lowest path of the query and verify that it hasn't
- been modified by others transactions. *)
-@@ -204,7 +208,7 @@ let commit ~con t =
- if !test_eagain && Random.int 3 = 0 then
- false
- else
-- try_commit oldroot cstore t.store
-+ try_commit (Store.get_root oldstore) cstore t.store
- in
- if has_commited && has_write_ops then
- Disk.write t.store;
---
-2.1.4
-