- int rc = 0;
- ENTRY;
-
- CDEBUG(D_INFO, "putref res: %p count: %d\n", res,
- cfs_atomic_read(&res->lr_refcount) - 1);
- LASSERT(cfs_atomic_read(&res->lr_refcount) > 0);
- LASSERT(cfs_atomic_read(&res->lr_refcount) < LI_POISON);
-
- LASSERT(cfs_atomic_read(&res->lr_refcount) >= 0);
- if (cfs_atomic_dec_and_test(&res->lr_refcount)) {
- __ldlm_resource_putref_final(res);
- if (res->lr_lvb_data)
- OBD_FREE(res->lr_lvb_data, res->lr_lvb_len);
- OBD_SLAB_FREE(res, ldlm_resource_slab, sizeof *res);
- rc = 1;
- }