[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] Fix the startup behaviour when the tdb file exists. We were attempting to
# HG changeset patch # User emellor@xxxxxxxxxxxxxxxxxxxxxx # Node ID ac3ceb2d37d17a4c64b6fcccf5d0c1ab5507c557 # Parent ab300e9fe02b6a48cfd7fda9c50d878e11160297 Fix the startup behaviour when the tdb file exists. We were attempting to remove and recreate the /local directory, but the manual_node call only works if the tdb is empty -- we must use create_node, otherwise the store is corrupted. It's not clear to me that the other manual_node calls are safe, but I have only made this smaller change for the sake of stability. These other calls should be reviewed. Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx> diff -r ab300e9fe02b -r ac3ceb2d37d1 tools/xenstore/xenstored_core.c --- a/tools/xenstore/xenstored_core.c Wed Dec 7 15:41:41 2005 +++ b/tools/xenstore/xenstored_core.c Wed Dec 7 15:44:38 2005 @@ -823,7 +823,7 @@ node->num_perms = parent->num_perms; node->perms = talloc_memdup(node, parent->perms, node->num_perms * sizeof(node->perms[0])); - if (conn->id) + if (conn && conn->id) node->perms[0].id = conn->id; /* No children, no data */ @@ -1441,8 +1441,10 @@ balloon driver will pick up stale entries. In the case of the balloon driver, this can be fatal. */ + char *tlocal = talloc_strdup(talloc_autofree_context(), + "/local"); internal_rm("/local"); - manual_node("/", "local"); + create_node(NULL, tlocal, NULL, 0); } else { tdb_ctx = tdb_open(tdbname, 7919, TDB_FLAGS, O_RDWR|O_CREAT, _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |