J. Bruce Fields fdef7aa5d4 svcrpc: ensure cache_check caller sees updated entry
Supposes cache_check runs simultaneously with an update on a different
CPU:

	cache_check			task doing update
	^^^^^^^^^^^			^^^^^^^^^^^^^^^^^

	1. test for CACHE_VALID		1'. set entry->data
	   & !CACHE_NEGATIVE

	2. use entry->data		2'. set CACHE_VALID

If the two memory writes performed in step 1' and 2' appear misordered
with respect to the reads in step 1 and 2, then the caller could get
stale data at step 2 even though it saw CACHE_VALID set on the cache
entry.

Add memory barriers to prevent this.

Reviewed-by: NeilBrown <neilb@suse.de>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
2011-01-04 16:49:25 -05:00
..
2010-10-25 13:09:44 -07:00
2010-10-25 13:09:43 -07:00
2010-11-12 14:07:14 -08:00
2010-12-10 16:20:56 -08:00
2010-11-28 11:29:27 -08:00
2010-09-23 14:33:39 -07:00
2010-10-21 15:44:13 +02:00
2010-09-23 14:33:39 -07:00
2010-12-08 12:13:43 -08:00
2010-12-08 09:58:44 -08:00
2010-11-29 09:45:15 -08:00
2010-12-09 20:35:27 -08:00
2010-10-15 15:53:27 +02:00