previously, an RCU critical section was held open for the duration
of a snapshot. this should not be necessary, as the snapshot makes
local copies of QP trie metadata, and it causes problems when a
DB iterator is held open between two loop events. we now call
rcu_read_unlock() after setting up the snapshot.
*qpsp = qps;
UNLOCK(&multi->mutex);
+
+ rcu_read_unlock();
}
void
*qpsp = NULL;
UNLOCK(&multi->mutex);
-
- rcu_read_unlock();
}
/***********************************************************************