Whamcloud - gitweb
- the same fix as in b_fid about lmv_intent_lookup()
[fs/lustre-release.git] / lustre / lmv / lmv_objmgr.c
index 7c2c8e5..9485f9d 100644 (file)
@@ -61,6 +61,9 @@ lmv_alloc_obj(struct obd_device *obd, struct ll_fid *fid,
         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;
@@ -68,6 +71,7 @@ lmv_alloc_obj(struct obd_device *obd, struct ll_fid *fid,
         obj->obd = obd;
         obj->state = 0;
         obj->fid = *fid;
+        obj->hashtype = mea->mea_magic;
           
         init_MUTEX(&obj->guard);
         atomic_set(&obj->count, 0);
@@ -340,6 +344,12 @@ lmv_delete_obj(struct obd_export *exp, struct ll_fid *fid)
         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;
@@ -352,8 +362,7 @@ lmv_delete_obj(struct obd_export *exp, struct ll_fid *fid)
 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;
 }
 
@@ -363,8 +372,7 @@ lmv_cleanup_mgr(struct obd_device *obd)
         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) {