提交 bcfe6d9e 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

tweak

上级 1db560a8
...@@ -77,16 +77,16 @@ int ...@@ -77,16 +77,16 @@ int
ns_insert(struct ns *ns, int key, void *val) ns_insert(struct ns *ns, int key, void *val)
{ {
int r = -1; int r = -1;
ACQUIRE(&ns->lock);
struct elem *e = elemalloc(); struct elem *e = elemalloc();
if (e) { if (e) {
e->key = key; e->key = key;
e->val = val; e->val = val;
uint i = key % NHASH; uint i = key % NHASH;
ACQUIRE(&ns->lock);
TAILQ_INSERT_TAIL(&(ns->table[i].chain), e, chain); TAILQ_INSERT_TAIL(&(ns->table[i].chain), e, chain);
RELEASE(&ns->lock);
r = 0; r = 0;
} }
RELEASE(&ns->lock);
return r; return r;
} }
...@@ -125,11 +125,13 @@ ns_remove(struct ns *ns, int key) ...@@ -125,11 +125,13 @@ ns_remove(struct ns *ns, int key)
struct elem *e = ns_dolookup(ns, key); struct elem *e = ns_dolookup(ns, key);
if (e) { if (e) {
TAILQ_REMOVE(&(ns->table[key % NHASH].chain), e, chain); TAILQ_REMOVE(&(ns->table[key % NHASH].chain), e, chain);
RELEASE(&ns->lock);
if (rcu) rcu_delayed(e, kmfree); if (rcu) rcu_delayed(e, kmfree);
else kmfree(e); else kmfree(e);
r = 0; r = 0;
} else {
RELEASE(&ns->lock);
} }
RELEASE(&ns->lock);
return r; return r;
} }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论