From: Herbert Xu > Some existing rhashtable users get too intimate with it by walking > the buckets directly. This prevents us from easily changing the > internals of rhashtable. > > This patch adds the helpers rhashtable_walk_init/next/end which > will replace these custom walkers. > > They are meant to be usable for both procfs seq_file walks as well > as walking by a netlink dump. The iterator structure should fit > inside a netlink dump cb structure, with at least one element to > spare. ... > +/** > + * rhashtable_walk_start - Start a hash table walk > + * @iter: Hash table iterator > + * > + * Start a hash table walk. > + * > + * Returns zero if successful. Returns -EINTR if we couldn't > + * obtain the resize lock. > + */ > +int rhashtable_walk_start(struct rhashtable_iter *iter) > +{ > + struct rhashtable *ht = iter->ht; > + int err; > + > + err = mutex_lock_interruptible(&ht->mutex); > + rcu_read_lock(); > + > + if (!err) > + mutex_unlock(&ht->mutex); > + > + return err; > +} That doesn't look right to me. Surely you shouldn't be calling rcu_read_lock() when the mutex request is interrupted. So maybe: err = mutex_lock_interruptible(&ht->mutex); if (err) return err; rcu_read_lock(); return 0; } David -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html