[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v3 06/25] tools/xenstore: switch get_acc_data() to use name instead of key
Eliminate further TDB_DATA usage by switching get_acc_data() and get_acc_domid() from a TDB key to the name of the node in the data base as a parameter. This is in preparation to replace TDB with a more simple data storage. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Julien Grall <jgrall@xxxxxxxxxx> --- tools/xenstore/xenstored_core.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tools/xenstore/xenstored_core.c b/tools/xenstore/xenstored_core.c index 2aa3d37c18..dab09b5236 100644 --- a/tools/xenstore/xenstored_core.c +++ b/tools/xenstore/xenstored_core.c @@ -566,19 +566,20 @@ void set_tdb_key(const char *name, TDB_DATA *key) key->dsize = strlen(name); } -static void get_acc_data(TDB_DATA *key, struct node_account_data *acc) +static void get_acc_data(const char *name, struct node_account_data *acc) { - TDB_DATA old_data; + TDB_DATA key, old_data; struct xs_tdb_record_hdr *hdr; if (acc->memory < 0) { - old_data = tdb_fetch(tdb_ctx, *key); + set_tdb_key(name, &key); + old_data = tdb_fetch(tdb_ctx, key); /* No check for error, as the node might not exist. */ if (old_data.dptr == NULL) { acc->memory = 0; } else { - trace_tdb("read %s size %zu\n", key->dptr, - old_data.dsize + key->dsize); + trace_tdb("read %s size %zu\n", name, + old_data.dsize + key.dsize); hdr = (void *)old_data.dptr; acc->memory = old_data.dsize; acc->domid = hdr->perms[0].id; @@ -593,11 +594,10 @@ static void get_acc_data(TDB_DATA *key, struct node_account_data *acc) * count prepended (e.g. 123/local/domain/...). So testing for the node's * key not to start with "/" or "@" is sufficient. */ -static unsigned int get_acc_domid(struct connection *conn, TDB_DATA *key, +static unsigned int get_acc_domid(struct connection *conn, const char *name, unsigned int domid) { - return (!conn || key->dptr[0] == '/' || key->dptr[0] == '@') - ? domid : conn->id; + return (!conn || name[0] == '/' || name[0] == '@') ? domid : conn->id; } int db_write(struct connection *conn, const char *db_name, void *data, @@ -618,9 +618,9 @@ int db_write(struct connection *conn, const char *db_name, void *data, else old_acc = *acc; - get_acc_data(&key, &old_acc); - old_domid = get_acc_domid(conn, &key, old_acc.domid); - new_domid = get_acc_domid(conn, &key, hdr->perms[0].id); + get_acc_data(db_name, &old_acc); + old_domid = get_acc_domid(conn, db_name, old_acc.domid); + new_domid = get_acc_domid(conn, db_name, hdr->perms[0].id); /* * Don't check for ENOENT, as we want to be able to switch orphaned @@ -675,7 +675,7 @@ int db_delete(struct connection *conn, const char *name, acc->memory = -1; } - get_acc_data(&key, acc); + get_acc_data(name, acc); if (tdb_delete(tdb_ctx, key)) { errno = EIO; @@ -684,7 +684,7 @@ int db_delete(struct connection *conn, const char *name, trace_tdb("delete %s\n", name); if (acc->memory) { - domid = get_acc_domid(conn, &key, acc->domid); + domid = get_acc_domid(conn, name, acc->domid); domain_memory_add_nochk(conn, domid, -acc->memory - key.dsize); } -- 2.35.3
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |