mm/slab: break up RCU readers on SLAB_TYPESAFE_BY_RCU example code
The SLAB_TYPESAFE_BY_RCU example code snippet uses a single RCU
read-side critical section for retries.
'Documentation/RCU/rculist_nulls.rst' has similar example code snippet,
and commit da82af0435
("doc: Update and wordsmith rculist_nulls.rst")
broke it up. Apply the change to SLAB_TYPESAFE_BY_RCU example code
snippet, too.
Signed-off-by: SeongJae Park <sj@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
parent
9ca73f2645
commit
1143c9d9d7
|
@ -53,16 +53,18 @@
|
|||
* stays valid, the trick to using this is relying on an independent
|
||||
* object validation pass. Something like:
|
||||
*
|
||||
* begin:
|
||||
* rcu_read_lock();
|
||||
* again:
|
||||
* obj = lockless_lookup(key);
|
||||
* if (obj) {
|
||||
* if (!try_get_ref(obj)) // might fail for free objects
|
||||
* goto again;
|
||||
* rcu_read_unlock();
|
||||
* goto begin;
|
||||
*
|
||||
* if (obj->key != key) { // not the object we expected
|
||||
* put_ref(obj);
|
||||
* goto again;
|
||||
* rcu_read_unlock();
|
||||
* goto begin;
|
||||
* }
|
||||
* }
|
||||
* rcu_read_unlock();
|
||||
|
|
Loading…
Reference in New Issue