unsigned int obj_size;
struct lmv_obd *lmv = &obd->u.lmv;
+ LASSERT(mea->mea_magic == MEA_MAGIC_LAST_CHAR
+ || mea->mea_magic == MEA_MAGIC_ALL_CHARS);
+
OBD_ALLOC(obj, sizeof(*obj));
if (!obj)
return NULL;
obj->obd = obd;
obj->state = 0;
obj->fid = *fid;
+ obj->hashtype = mea->mea_magic;
init_MUTEX(&obj->guard);
atomic_set(&obj->count, 0);
if (obj) {
obj->state |= O_FREEING;
+ if (atomic_read(&obj->count) > 1)
+ CERROR("obj %lu/%lu/%lu has count > 2 (%d)\n",
+ (unsigned long) obj->fid.mds,
+ (unsigned long) obj->fid.id,
+ (unsigned long) obj->fid.generation,
+ atomic_read(&obj->count));
__put_obj(obj);
__put_obj(obj);
rc = 1;
int
lmv_setup_mgr(struct obd_device *obd)
{
- CWARN("LMV object manager setup (%s)\n",
- obd->obd_uuid.uuid);
+ CDEBUG(D_INFO, "LMV object manager setup (%s)\n", obd->obd_uuid.uuid);
return 0;
}
struct lmv_obj *obj;
struct list_head *cur, *tmp;
- CWARN("LMV object manager cleanup (%s)\n",
- obd->obd_uuid.uuid);
+ CDEBUG(D_INFO, "LMV object manager cleanup (%s)\n", obd->obd_uuid.uuid);
spin_lock(&lmv_obj_list_lock);
list_for_each_safe(cur, tmp, &lmv_obj_list) {