[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 |