|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] xenstored: add --internal-db flag
# HG changeset patch
# User Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
# Date 1328812414 0
# Node ID 2094ba2c2f322ae6280e57cafef19557d46a314a
# Parent b06f156d5d7209ea8e53cd5caf4c4e5b93768150
xenstored: add --internal-db flag
Signed-off-by: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx>
Acked-by: Ian Campbell <ian.campbell@xxxxxxxxxx>
Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
Cc: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
Committed-by: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx>
---
diff -r b06f156d5d72 -r 2094ba2c2f32 tools/xenstore/xenstored_core.c
--- a/tools/xenstore/xenstored_core.c Thu Feb 09 18:33:33 2012 +0000
+++ b/tools/xenstore/xenstored_core.c Thu Feb 09 18:33:34 2012 +0000
@@ -63,7 +63,7 @@
static bool remove_local = true;
static int reopen_log_pipe[2];
static char *tracefile = NULL;
-static TDB_CONTEXT *tdb_ctx;
+static TDB_CONTEXT *tdb_ctx = NULL;
static void corrupt(struct connection *conn, const char *fmt, ...);
static void check_store(void);
@@ -92,8 +92,9 @@
bool replace_tdb(const char *newname, TDB_CONTEXT *newtdb)
{
- if (rename(newname, xs_daemon_tdb()) != 0)
- return false;
+ if (!(tdb_ctx->flags & TDB_INTERNAL))
+ if (rename(newname, xs_daemon_tdb()) != 0)
+ return false;
tdb_close(tdb_ctx);
tdb_ctx = talloc_steal(talloc_autofree_context(), newtdb);
return true;
@@ -1410,7 +1411,7 @@
}
#endif
-#define TDB_FLAGS 0
+static int tdb_flags;
/* We create initial nodes manually. */
static void manual_node(const char *name, const char *child)
@@ -1435,7 +1436,9 @@
{
char *tdbname;
tdbname = talloc_strdup(talloc_autofree_context(), xs_daemon_tdb());
- tdb_ctx = tdb_open(tdbname, 0, TDB_FLAGS, O_RDWR, 0);
+
+ if (!(tdb_flags & TDB_INTERNAL))
+ tdb_ctx = tdb_open(tdbname, 0, tdb_flags, O_RDWR, 0);
if (tdb_ctx) {
/* XXX When we make xenstored able to restart, this will have
@@ -1466,7 +1469,7 @@
talloc_free(tlocal);
}
else {
- tdb_ctx = tdb_open(tdbname, 7919, TDB_FLAGS, O_RDWR|O_CREAT,
+ tdb_ctx = tdb_open(tdbname, 7919, tdb_flags, O_RDWR|O_CREAT,
0640);
if (!tdb_ctx)
barf_perror("Could not create tdb file %s", tdbname);
@@ -1783,6 +1786,7 @@
" --transaction <nb> limit the number of transaction allowed per domain,\n"
" --no-recovery to request that no recovery should be attempted when\n"
" the store is corrupted (debug only),\n"
+" --internal-db store database in memory, not on disk\n"
" --preserve-local to request that /local is preserved on start-up,\n"
" --verbose to request verbose execution.\n");
}
@@ -1800,6 +1804,7 @@
{ "transaction", 1, NULL, 't' },
{ "no-recovery", 0, NULL, 'R' },
{ "preserve-local", 0, NULL, 'L' },
+ { "internal-db", 0, NULL, 'I' },
{ "verbose", 0, NULL, 'V' },
{ "watch-nb", 1, NULL, 'W' },
{ NULL, 0, NULL, 0 } };
@@ -1853,6 +1858,9 @@
case 'T':
tracefile = optarg;
break;
+ case 'I':
+ tdb_flags = TDB_INTERNAL|TDB_NOLOCK;
+ break;
case 'V':
verbose = true;
break;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |