NeilBrown adc6a3ab19 rhashtable: move dereference inside rht_ptr()
Rather than dereferencing a pointer to a bucket and then passing the
result to rht_ptr(), we now pass in the pointer and do the dereference
in rht_ptr().

This requires that we pass in the tbl and hash as well to support RCU
checks, and means that the various rht_for_each functions can expect a
pointer that can be dereferenced without further care.

There are two places where we dereference a bucket pointer
where there is no testable protection - in each case we know
that we much have exclusive access without having taken a lock.
The previous code used rht_dereference() to pretend that holding
the mutex provided protects, but holding the mutex never provides
protection for accessing buckets.

So instead introduce rht_ptr_exclusive() that can be used when
there is known to be exclusive access without holding any locks.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-04-12 17:34:45 -07:00
..
2019-03-15 14:37:46 -07:00
2018-07-10 15:00:52 -06:00
2018-08-22 10:52:48 -07:00
2017-12-01 13:09:40 -08:00
2017-12-01 13:09:40 -08:00
2018-10-12 09:17:46 +02:00
2018-08-16 12:14:42 -07:00
2017-12-01 13:09:40 -08:00
2018-08-22 10:52:48 -07:00
2019-03-07 18:32:00 -08:00
2018-02-06 18:32:44 -08:00
2019-01-05 13:54:53 -08:00
2019-03-12 10:04:02 -07:00
2017-02-24 17:46:57 -08:00
2019-02-26 14:05:20 -05:00
2018-06-12 16:19:22 -07:00
2018-04-12 09:41:19 -07:00
2018-06-12 16:19:22 -07:00
2017-12-01 13:09:40 -08:00
2018-10-16 13:45:44 +02:00
2017-12-01 13:09:40 -08:00
2019-04-05 16:02:30 -10:00
2018-06-27 18:58:49 +03:00
2018-10-15 16:31:29 -04:00
2018-04-23 16:39:35 +01:00
2019-03-09 09:22:42 -08:00
2017-08-15 09:02:07 -07:00