<br><br><div class="gmail_quote">On Tue, Jun 25, 2013 at 2:16 PM, Ben Pfaff <span dir="ltr"><<a href="mailto:blp@nicira.com" target="_blank">blp@nicira.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Tue, Jun 25, 2013 at 01:02:30AM -0700, Gurucharan Shetty wrote:<br>
> An upcoming commit provides the ability to add and remove databases.<br>
> Having the databases in a shash instead of an array makes it easier<br>
> to add and remove databases.<br>
><br>
> Feature #14595.<br>
> Signed-off-by: Gurucharan Shetty <<a href="mailto:gshetty@nicira.com">gshetty@nicira.com</a>><br>
<br>
</div>ovsdb_server_compact() checks for db->filename == NULL. When does<br>
this happen?<br>
<br></blockquote><div>I will get rid of it. I don't see it happening. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I'd prefer to declare the various 'db' variables in innermost blocks<br>
where we can. If you agree, I've appended an incremental you can fold<br>
in, that shows what I mean.<br>
<br>
Acked-by: Ben Pfaff <<a href="mailto:blp@nicira.com">blp@nicira.com</a>><br>
<br></blockquote><div>Thanks, I will fold in the incremental.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
diff --git a/ovsdb/ovsdb-server.c b/ovsdb/ovsdb-server.c<br>
index 4eab6b5..949ff94 100644<br>
--- a/ovsdb/ovsdb-server.c<br>
+++ b/ovsdb/ovsdb-server.c<br>
@@ -126,7 +126,6 @@ main(int argc, char *argv[])<br>
<div class="im"> struct remove_remote_aux remove_remote_aux;<br>
FILE *config_tmpfile;<br>
<br>
</div>- struct db *db;<br>
struct shash all_dbs;<br>
<div class="im"> struct shash_node *node;<br>
int i;<br>
</div>@@ -160,12 +159,12 @@ main(int argc, char *argv[])<br>
<div class="im"><br>
if (argc > 0) {<br>
for (i = 0; i < argc; i++) {<br>
</div><div class="im">- db = xzalloc(sizeof *db);<br>
</div>+ struct db *db = xzalloc(sizeof *db);<br>
<div class="im"> db->filename = argv[i];<br>
</div> open_db(jsonrpc, db, &all_dbs);<br>
}<br>
} else {<br>
<div class="im">- db = xzalloc(sizeof *db);<br>
</div>+ struct db *db = xzalloc(sizeof *db);<br>
<div class="im"> db->filename = xasprintf("%s/conf.db", ovs_dbdir());<br>
</div> open_db(jsonrpc, db, &all_dbs);<br>
}<br>
@@ -231,7 +230,7 @@ main(int argc, char *argv[])<br>
simap_init(&usage);<br>
ovsdb_jsonrpc_server_get_memory_usage(jsonrpc, &usage);<br>
<div class="im"> SHASH_FOR_EACH(node, &all_dbs) {<br>
- db = node->data;<br>
</div>+ struct db *db = node->data;<br>
ovsdb_get_memory_usage(db->db, &usage);<br>
}<br>
memory_report(&usage);<br>
@@ -247,7 +246,7 @@ main(int argc, char *argv[])<br>
ovsdb_jsonrpc_server_run(jsonrpc);<br>
<div class="im"><br>
SHASH_FOR_EACH(node, &all_dbs) {<br>
- db = node->data;<br>
</div>+ struct db *db = node->data;<br>
<div class="im"> ovsdb_trigger_run(db->db, time_msec());<br>
}<br>
if (run_process) {<br>
</div>@@ -267,7 +266,7 @@ main(int argc, char *argv[])<br>
ovsdb_jsonrpc_server_wait(jsonrpc);<br>
unixctl_server_wait(unixctl);<br>
<div class="im"> SHASH_FOR_EACH(node, &all_dbs) {<br>
- db = node->data;<br>
</div>+ struct db *db = node->data;<br>
<div class="im"> ovsdb_trigger_wait(db->db, time_msec());<br>
}<br>
if (run_process) {<br>
</div>@@ -281,7 +280,7 @@ main(int argc, char *argv[])<br>
}<br>
ovsdb_jsonrpc_server_destroy(jsonrpc);<br>
<div class="im"> SHASH_FOR_EACH(node, &all_dbs) {<br>
- db = node->data;<br>
</div>+ struct db *db = node->data;<br>
ovsdb_destroy(db->db);<br>
}<br>
sset_destroy(&remotes);<br>
@@ -322,10 +321,9 @@ static const struct db *<br>
<div class="im"> find_db(const struct shash *all_dbs, const char *db_name)<br>
{<br>
</div> struct shash_node *node;<br>
- struct db *db;<br>
<br>
SHASH_FOR_EACH(node, all_dbs) {<br>
<div class="im">- db = node->data;<br>
</div>+ struct db *db = node->data;<br>
<div class="im"> if (!strcmp(db->db->schema->name, db_name)) {<br>
</div> return db;<br>
}<br>
<br>
Thanks,<br>
<br>
Ben.<br>
</blockquote></div><br>