cache: Hold cache reference while a cache is being provided
Signed-off-by: Thomas Graf <tgraf@suug.ch>
This commit is contained in:
parent
c658a6eef8
commit
3ed1f9ab5f
1 changed files with 6 additions and 2 deletions
|
@ -217,8 +217,10 @@ void nl_cache_mngt_provide(struct nl_cache *cache)
|
|||
ops = cache_ops_lookup_for_obj(cache->c_ops->co_obj_ops);
|
||||
if (!ops)
|
||||
BUG();
|
||||
else
|
||||
else {
|
||||
nl_cache_get(cache);
|
||||
ops->co_major_cache = cache;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -236,8 +238,10 @@ void nl_cache_mngt_unprovide(struct nl_cache *cache)
|
|||
ops = cache_ops_lookup_for_obj(cache->c_ops->co_obj_ops);
|
||||
if (!ops)
|
||||
BUG();
|
||||
else if (ops->co_major_cache == cache)
|
||||
else if (ops->co_major_cache == cache) {
|
||||
nl_cache_free(ops->co_major_cache);
|
||||
ops->co_major_cache = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
struct nl_cache *__nl_cache_mngt_require(const char *name)
|
||||
|
|
Loading…
Add table
Reference in a new issue