Whamcloud - gitweb
LU-2622 obdclass: Remove the global cl_env list
[fs/lustre-release.git] / lustre / lov / lov_merge.c
index 4e3eb72..4b9b1a5 100644 (file)
@@ -26,6 +26,8 @@
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright (c) 2012, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -67,6 +69,11 @@ int lov_merge_lvb_kms(struct lov_stripe_md *lsm,
         LASSERT(lsm->lsm_lock_owner == cfs_curproc_pid());
 #endif
 
+       CDEBUG(D_INODE, "MDT FID "DFID" initial value: s="LPU64" m="LPU64
+              " a="LPU64" c="LPU64" b="LPU64"\n",
+              lsm->lsm_object_seq, (__u32)lsm->lsm_object_id,
+              (__u32)(lsm->lsm_object_id >> 32), lvb->lvb_size,
+              lvb->lvb_mtime, lvb->lvb_atime, lvb->lvb_ctime, lvb->lvb_blocks);
         for (i = 0; i < lsm->lsm_stripe_count; i++) {
                 struct lov_oinfo *loi = lsm->lsm_oinfo[i];
                 obd_size lov_size, tmpsize;
@@ -95,6 +102,13 @@ int lov_merge_lvb_kms(struct lov_stripe_md *lsm,
                         current_atime = loi->loi_lvb.lvb_atime;
                 if (loi->loi_lvb.lvb_ctime > current_ctime)
                         current_ctime = loi->loi_lvb.lvb_ctime;
+               CDEBUG(D_INODE, "MDT FID "DFID" on OST[%u]: s="LPU64" m="LPU64
+                      " a="LPU64" c="LPU64" b="LPU64"\n",
+                      lsm->lsm_object_seq, (__u32)lsm->lsm_object_id,
+                      (__u32)(lsm->lsm_object_id >> 32), loi->loi_ost_idx,
+                      loi->loi_lvb.lvb_size, loi->loi_lvb.lvb_mtime,
+                      loi->loi_lvb.lvb_atime, loi->loi_lvb.lvb_ctime,
+                      loi->loi_lvb.lvb_blocks);
         }
 
         *kms_place = kms;
@@ -118,17 +132,21 @@ int lov_merge_lvb_kms(struct lov_stripe_md *lsm,
 int lov_merge_lvb(struct obd_export *exp,
                   struct lov_stripe_md *lsm, struct ost_lvb *lvb, int kms_only)
 {
-        int   rc;
-        __u64 kms;
-
-        ENTRY;
-        rc = lov_merge_lvb_kms(lsm, lvb, &kms);
-        if (kms_only)
-                lvb->lvb_size = kms;
-        CDEBUG(D_INODE, "merged: "LPU64" "LPU64" "LPU64" "LPU64" "LPU64"\n",
-               lvb->lvb_size, lvb->lvb_mtime, lvb->lvb_atime,
-               lvb->lvb_ctime, lvb->lvb_blocks);
-        RETURN(rc);
+       int   rc;
+       __u64 kms;
+
+       ENTRY;
+       lov_stripe_lock(lsm);
+       rc = lov_merge_lvb_kms(lsm, lvb, &kms);
+       lov_stripe_unlock(lsm);
+       if (kms_only)
+               lvb->lvb_size = kms;
+       CDEBUG(D_INODE, "merged for FID "DFID" s="LPU64" m="LPU64" a="LPU64
+              " c="LPU64" b="LPU64"\n",
+              lsm->lsm_object_seq, (__u32)lsm->lsm_object_id,
+              (__u32)(lsm->lsm_object_id >> 32), lvb->lvb_size, lvb->lvb_mtime,
+              lvb->lvb_atime, lvb->lvb_ctime, lvb->lvb_blocks);
+       RETURN(rc);
 }
 
 /* Must be called under the lov_stripe_lock() */