SELinux: calculate and print hashtab stats with a generic function
We have custom debug functions like rangetr_hash_eval and symtab_hash_eval which do the same thing. Just create a generic function that takes the name of the hash table as an argument instead of having custom functions. Signed-off-by: Eric Paris <eparis@redhat.com> Reviewed-by: James Morris <jmorris@namei.org>
This commit is contained in:
@@ -423,32 +423,26 @@ static int (*index_f[SYM_NUM]) (void *key, void *datum, void *datap) =
|
|||||||
};
|
};
|
||||||
|
|
||||||
#ifdef DEBUG_HASHES
|
#ifdef DEBUG_HASHES
|
||||||
static void symtab_hash_eval(struct symtab *s)
|
static void hash_eval(struct hashtab *h, const char *hash_name)
|
||||||
{
|
{
|
||||||
int i;
|
|
||||||
|
|
||||||
for (i = 0; i < SYM_NUM; i++) {
|
|
||||||
struct hashtab *h = s[i].table;
|
|
||||||
struct hashtab_info info;
|
struct hashtab_info info;
|
||||||
|
|
||||||
hashtab_stat(h, &info);
|
hashtab_stat(h, &info);
|
||||||
printk(KERN_DEBUG "SELinux: %s: %d entries and %d/%d buckets used, "
|
printk(KERN_DEBUG "SELinux: %s: %d entries and %d/%d buckets used, "
|
||||||
"longest chain length %d\n", symtab_name[i], h->nel,
|
"longest chain length %d\n", hash_name, h->nel,
|
||||||
info.slots_used, h->size, info.max_chain_len);
|
info.slots_used, h->size, info.max_chain_len);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
static void rangetr_hash_eval(struct hashtab *h)
|
static void symtab_hash_eval(struct symtab *s)
|
||||||
{
|
{
|
||||||
struct hashtab_info info;
|
int i;
|
||||||
|
|
||||||
hashtab_stat(h, &info);
|
for (i = 0; i < SYM_NUM; i++)
|
||||||
printk(KERN_DEBUG "SELinux: rangetr: %d entries and %d/%d buckets used, "
|
hash_eval(s[i].table, symtab_name[i]);
|
||||||
"longest chain length %d\n", h->nel,
|
|
||||||
info.slots_used, h->size, info.max_chain_len);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
static inline void rangetr_hash_eval(struct hashtab *h)
|
static inline void hash_eval(struct hashtab *h, char *hash_name)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@@ -1802,7 +1796,7 @@ static int range_read(struct policydb *p, void *fp)
|
|||||||
rt = NULL;
|
rt = NULL;
|
||||||
r = NULL;
|
r = NULL;
|
||||||
}
|
}
|
||||||
rangetr_hash_eval(p->range_tr);
|
hash_eval(p->range_tr, "rangetr");
|
||||||
rc = 0;
|
rc = 0;
|
||||||
out:
|
out:
|
||||||
kfree(rt);
|
kfree(rt);
|
||||||
|
Reference in New Issue
Block a user