&ldlm_srv_namespace_lock : &ldlm_cli_namespace_lock;
}
-/* ns_bref is the number of resources in this namespace with the notable
- * exception of quota namespaces which have their empty refcount at 1 */
+/* ns_bref is the number of resources in this namespace */
static inline int ldlm_ns_empty(struct ldlm_namespace *ns)
{
return cfs_atomic_read(&ns->ns_bref) == 0;
/* Let's see if we happened to be the very first resource in this
* namespace. If so, and this is a client namespace, we need to move
* the namespace into the active namespaces list to be patrolled by
- * the ldlm_poold.
- * A notable exception, for quota namespaces qsd_lib.c already took a
- * namespace reference, so it won't be participating in all of this,
- * but I guess that's ok since we have no business cancelling quota
- * locks anyway */
+ * the ldlm_poold. */
if (ns_is_client(ns) && ns_refcount == 1) {
mutex_lock(ldlm_namespace_lock(LDLM_NAMESPACE_CLIENT));
ldlm_namespace_move_to_active_locked(ns, LDLM_NAMESPACE_CLIENT);
/* qsd_exp should now be valid */
LASSERT(qsd->qsd_exp);
- /* grab reference on namespace */
- ldlm_namespace_get(class_exp2obd(qsd->qsd_exp)->obd_namespace);
qsd->qsd_ns = class_exp2obd(qsd->qsd_exp)->obd_namespace;
write_lock(&qsd->qsd_lock);
qsd_stop_reint_thread(qsd->qsd_type_array[qtype]);
}
- /* release reference on namespace */
if (qsd->qsd_ns != NULL) {
- ldlm_namespace_put(qsd->qsd_ns);
qsd->qsd_ns = NULL;
}