struct nrs_orr_object *orro = hlist_entry(hnode,
struct nrs_orr_object,
oo_hnode);
- orro->oo_ref++;
+ atomic_inc(&orro->oo_ref);
}
/**
cfs_hash_bd_get_and_lock(hs, &orro->oo_key, &bd, 1);
- if (--orro->oo_ref > 1) {
+ if (atomic_dec_return(&orro->oo_ref) > 1) {
cfs_hash_bd_unlock(hs, &bd, 1);
-
return;
}
- LASSERT(orro->oo_ref == 1);
+ LASSERT(atomic_read(&orro->oo_ref) == 1);
cfs_hash_bd_del_locked(hs, &bd, hnode);
cfs_hash_bd_unlock(hs, &bd, 1);
struct nrs_orr_object *orro = hlist_entry(hnode,
struct nrs_orr_object,
oo_hnode);
- orro->oo_ref--;
+ atomic_dec(&orro->oo_ref);
}
static int nrs_trr_hop_keycmp(const void *key, struct hlist_node *hnode)
oo_hnode);
struct nrs_orr_data *orrd = container_of(orro->oo_res.res_parent,
struct nrs_orr_data, od_res);
+ int refs = atomic_read(&orro->oo_ref);
- LASSERTF(orro->oo_ref == 0,
- "Busy NRS TRR policy object for OST with index %u, with %ld "
- "refs\n", orro->oo_key.ok_idx, orro->oo_ref);
+ LASSERTF(refs == 0,
+ "Busy NRS TRR policy object for OST with index %u, with %d "
+ "refs\n", orro->oo_key.ok_idx, refs);
OBD_SLAB_FREE_PTR(orro, orrd->od_cache);
}
RETURN(-ENOMEM);
orro->oo_key = key;
- orro->oo_ref = 1;
+ atomic_set(&orro->oo_ref, 1);
tmp = cfs_hash_findadd_unique(orrd->od_obj_hash, &orro->oo_key,
&orro->oo_hnode);