mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-26 09:54:22 +03:00
Linux 3.9 compat: Switch to hlist_for_each{,_rcu}
torvalds/linux@b67bfe0d42 changed hlist_for_each_entry{,_rcu} to take 3 arguments instead of 4. We handle this by switching to hlist_for_each{,_rcu}, which works across all supported kernels. Signed-off-by: Richard Yao <ryao@cs.stonybrook.edu> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
parent
8274ed5988
commit
4a31e5aa9b
@ -404,7 +404,8 @@ kmem_del_init(spinlock_t *lock, struct hlist_head *table, int bits, const void *
|
||||
spin_lock_irqsave(lock, flags);
|
||||
|
||||
head = &table[hash_ptr(addr, bits)];
|
||||
hlist_for_each_entry_rcu(p, node, head, kd_hlist) {
|
||||
hlist_for_each_rcu(node, head) {
|
||||
p = list_entry_rcu(node, struct kmem_debug, kd_hlist);
|
||||
if (p->kd_addr == addr) {
|
||||
hlist_del_init(&p->kd_hlist);
|
||||
list_del_init(&p->kd_list);
|
||||
|
@ -113,7 +113,8 @@ tsd_hash_search(tsd_hash_table_t *table, uint_t key, pid_t pid)
|
||||
hash = hash_long((ulong_t)key * (ulong_t)pid, table->ht_bits);
|
||||
bin = &table->ht_bins[hash];
|
||||
spin_lock(&bin->hb_lock);
|
||||
hlist_for_each_entry(entry, node, &bin->hb_head, he_list) {
|
||||
hlist_for_each(node, &bin->hb_head) {
|
||||
entry = list_entry(node, tsd_hash_entry_t, he_list);
|
||||
if ((entry->he_key == key) && (entry->he_pid == pid)) {
|
||||
spin_unlock(&bin->hb_lock);
|
||||
SRETURN(entry);
|
||||
|
Loading…
Reference in New Issue
Block a user