Messages in this thread | | | Date | Sat, 2 Jun 2018 00:54:28 +0800 | From | Herbert Xu <> | Subject | Re: [PATCH 08/18] rhashtable: clean up dereference of ->future_tbl. |
| |
On Fri, Jun 01, 2018 at 02:44:09PM +1000, NeilBrown wrote: > Using rht_dereference_bucket() to dereference > ->future_tbl looks like a type error, and could be confusing. > Using rht_dereference_rcu() to test a pointer for NULL > adds an unnecessary barrier - rcu_access_pointer() is preferred > for NULL tests when no lock is held. > > This uses 3 different ways to access ->future_tbl. > - if we know the mutex is held, use rht_dereference() > - if we don't hold the mutex, and are only testing for NULL, > use rcu_access_pointer() > - otherwise (using RCU protection for true dereference), > use rht_dereference_rcu(). > > Note that this includes a simplification of the call to > rhashtable_last_table() - we don't do an extra dereference > before the call any more. > > Signed-off-by: NeilBrown <neilb@suse.com>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au> -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |