提交 ded5e5ed 编写于 作者: P Paul E. McKenney

Update call_rcu() usage, add synchronize_rcu()

Reported-by: NKyle Hubert <khubert@gmail.com>
Signed-off-by: NPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: NJosh Triplett <josh@joshtriplett.org>
上级 65e423f8
...@@ -1645,7 +1645,9 @@ the amount of locking which needs to be done. ...@@ -1645,7 +1645,9 @@ the amount of locking which needs to be done.
all the readers who were traversing the list when we deleted the all the readers who were traversing the list when we deleted the
element are finished. We use <function>call_rcu()</function> to element are finished. We use <function>call_rcu()</function> to
register a callback which will actually destroy the object once register a callback which will actually destroy the object once
the readers are finished. all pre-existing readers are finished. Alternatively,
<function>synchronize_rcu()</function> may be used to block until
all pre-existing are finished.
</para> </para>
<para> <para>
But how does Read Copy Update know when the readers are But how does Read Copy Update know when the readers are
...@@ -1714,7 +1716,7 @@ the amount of locking which needs to be done. ...@@ -1714,7 +1716,7 @@ the amount of locking which needs to be done.
- object_put(obj); - object_put(obj);
+ list_del_rcu(&amp;obj-&gt;list); + list_del_rcu(&amp;obj-&gt;list);
cache_num--; cache_num--;
+ call_rcu(&amp;obj-&gt;rcu, cache_delete_rcu, obj); + call_rcu(&amp;obj-&gt;rcu, cache_delete_rcu);
} }
/* Must be holding cache_lock */ /* Must be holding cache_lock */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册