[PATCH] add rcu_barrier() synchronization point
authorDipankar Sarma <dipankar@in.ibm.com>
Mon, 12 Dec 2005 08:37:05 +0000 (00:37 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 12 Dec 2005 16:57:42 +0000 (08:57 -0800)
commitab4720ec76b756e1f8705e207a7b392b0453afd6
tree1c4235ec8ac0e8e7f75a6f97ea6169e93647004f
parent85b872424984e79519be904e7df02a91ba0a9486
[PATCH] add rcu_barrier() synchronization point

This introduces a new interface - rcu_barrier() which waits until all
the RCUs queued until this call have been completed.

Reiser4 needs this, because we do more than just freeing memory object
in our RCU callback: we also remove it from the list hanging off
super-block.  This means, that before freeing reiser4-specific portion
of super-block (during umount) we have to wait until all pending RCU
callbacks are executed.

The only change of reiser4 made to the original patch, is exporting of
rcu_barrier().

Cc: Hans Reiser <reiser@namesys.com>
Cc: Vladimir V. Saveliev <vs@namesys.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/rcupdate.h
kernel/rcupdate.c