mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
tools/xenstore: rename hashtable_insert() and let it return 0 on success
Today hashtable_insert() returns 0 in case of an error. Change that to let it return an errno value in the error case and 0 in case of success. In order to avoid any missed return value checks or related future backport errors, rename hashtable_insert() to hashtable_add(). Even if not used today, do the same switch for the return value of hashtable_expand(). Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Julien Grall <jgrall@amazon.com>
This commit is contained in:
1 parent
9b2c27e277
commit
d78c91c406
5 files changed
+22
-17
No files matched your search
@@ -105,14 +105,15 @@ static int hashtable_expand(struct hashtable *h)
|
||||
struct entry **pE;
|
||||
unsigned int newsize, i, index;
|
||||
/* Check we're not hitting max capacity */
|
||||
if (h->primeindex == (PRIME_TABLE_LEN - 1)) return 0;
|
||||
if (h->primeindex == (PRIME_TABLE_LEN - 1))
|
||||
return ENOSPC;
|
||||
newsize = primes[++(h->primeindex)];
|
||||
|
||||
newtable = talloc_realloc(h, h->table, struct entry *, newsize);
|
||||
if (!newtable)
|
||||
{
|
||||
h->primeindex--;
|
||||
return 0;
|
||||
return ENOMEM;
|
||||
}
|
||||
|
||||
h->table = newtable;
|
||||
@@ -136,10 +137,10 @@ static int hashtable_expand(struct hashtable *h)
|
||||
|
||||
h->tablelength = newsize;
|
||||
h->loadlimit = loadlimit(h->primeindex);
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int hashtable_insert(struct hashtable *h, void *k, void *v)
|
||||
int hashtable_add(struct hashtable *h, void *k, void *v)
|
||||
{
|
||||
/* This method allows duplicate keys - but they shouldn't be used */
|
||||
unsigned int index;
|
||||
@@ -153,7 +154,11 @@ int hashtable_insert(struct hashtable *h, void *k, void *v)
|
||||
hashtable_expand(h);
|
||||
}
|
||||
e = talloc_zero(h, struct entry);
|
||||
if (NULL == e) { --(h->entrycount); return 0; } /*oom*/
|
||||
if (NULL == e)
|
||||
{
|
||||
--h->entrycount;
|
||||
return ENOMEM;
|
||||
}
|
||||
e->h = hash(h,k);
|
||||
index = indexFor(h->tablelength,e->h);
|
||||
e->k = k;
|
||||
@@ -164,7 +169,7 @@ int hashtable_insert(struct hashtable *h, void *k, void *v)
|
||||
talloc_steal(e, v);
|
||||
e->next = h->table[index];
|
||||
h->table[index] = e;
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *hashtable_search(const struct hashtable *h, const void *k)
|
||||
|
||||
@@ -30,13 +30,13 @@ create_hashtable(const void *ctx, const char *name,
|
||||
);
|
||||
|
||||
/*****************************************************************************
|
||||
* hashtable_insert
|
||||
* hashtable_add
|
||||
|
||||
* @name hashtable_insert
|
||||
* @name hashtable_add
|
||||
* @param h the hashtable to insert into
|
||||
* @param k the key - hashtable claims ownership and will free on removal
|
||||
* @param v the value - does not claim ownership
|
||||
* @return non-zero for successful insertion
|
||||
* @return zero for successful insertion
|
||||
*
|
||||
* This function will cause the table to expand if the insertion would take
|
||||
* the ratio of entries to table size over the maximum load factor.
|
||||
@@ -49,7 +49,7 @@ create_hashtable(const void *ctx, const char *name,
|
||||
*/
|
||||
|
||||
int
|
||||
hashtable_insert(struct hashtable *h, void *k, void *v);
|
||||
hashtable_add(struct hashtable *h, void *k, void *v);
|
||||
|
||||
/*****************************************************************************
|
||||
* hashtable_search
|
||||
|
||||
@@ -2404,8 +2404,8 @@ int remember_string(struct hashtable *hash, const char *str)
|
||||
char *k = talloc_strdup(NULL, str);
|
||||
|
||||
if (!k)
|
||||
return 0;
|
||||
return hashtable_insert(hash, k, (void *)1);
|
||||
return ENOMEM;
|
||||
return hashtable_add(hash, k, (void *)1);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -2438,7 +2438,7 @@ static int check_store_step(const void *ctx, struct connection *conn,
|
||||
: WALK_TREE_SKIP_CHILDREN;
|
||||
}
|
||||
|
||||
if (!remember_string(data->reachable, node->name))
|
||||
if (remember_string(data->reachable, node->name))
|
||||
return WALK_TREE_ERROR_STOP;
|
||||
|
||||
domain_check_acc_add(node, data->domains);
|
||||
|
||||
@@ -537,7 +537,7 @@ static struct domain *alloc_domain(const void *context, unsigned int domid)
|
||||
domain->generation = generation;
|
||||
domain->introduced = false;
|
||||
|
||||
if (!hashtable_insert(domhash, &domain->domid, domain)) {
|
||||
if (hashtable_add(domhash, &domain->domid, domain)) {
|
||||
talloc_free(domain);
|
||||
errno = ENOMEM;
|
||||
return NULL;
|
||||
@@ -1794,7 +1794,7 @@ static int domain_check_acc_init_sub(const void *k, void *v, void *arg)
|
||||
*/
|
||||
dom->nodes = -d->acc[ACC_NODES].val;
|
||||
|
||||
if (!hashtable_insert(domains, &dom->domid, dom)) {
|
||||
if (hashtable_add(domains, &dom->domid, dom)) {
|
||||
talloc_free(dom);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -601,13 +601,13 @@ int check_transactions(struct hashtable *hash)
|
||||
list_for_each_entry(trans, &conn->transaction_list, list) {
|
||||
tname = talloc_asprintf(trans, "%"PRIu64,
|
||||
trans->generation);
|
||||
if (!tname || !remember_string(hash, tname))
|
||||
if (!tname || remember_string(hash, tname))
|
||||
goto nomem;
|
||||
|
||||
list_for_each_entry(i, &trans->accessed, list) {
|
||||
if (!i->ta_node)
|
||||
continue;
|
||||
if (!remember_string(hash, i->trans_name))
|
||||
if (remember_string(hash, i->trans_name))
|
||||
goto nomem;
|
||||
}
|
||||
|
||||
|
||||