[Ocfs2-commits] mfasheh commits r2592 - trunk/fs/ocfs2

svn-commits at oss.oracle.com svn-commits at oss.oracle.com
Fri Sep 16 20:29:34 CDT 2005


Author: mfasheh
Signed-off-by: jlbec
Date: 2005-09-16 20:29:33 -0500 (Fri, 16 Sep 2005)
New Revision: 2592

Modified:
   trunk/fs/ocfs2/alloc.c
   trunk/fs/ocfs2/dlmglue.c
   trunk/fs/ocfs2/dlmglue.h
Log:
* Add some LVB tracing. This should help us track what's going on in
  them without too much pain.

Signed-off-by: jlbec



Modified: trunk/fs/ocfs2/alloc.c
===================================================================
--- trunk/fs/ocfs2/alloc.c	2005-09-17 01:04:46 UTC (rev 2591)
+++ trunk/fs/ocfs2/alloc.c	2005-09-17 01:29:33 UTC (rev 2592)
@@ -1955,6 +1955,7 @@
 			    le64_to_cpu(fe->i_size),
 			    OCFS2_I(inode)->ip_clusters, i_size_read(inode),
 			    new_i_clusters);
+		mlog_meta_lvb(ML_ERROR, &OCFS2_I(inode)->ip_meta_lockres);
 		status = -EIO;
 		goto bail;
 	}

Modified: trunk/fs/ocfs2/dlmglue.c
===================================================================
--- trunk/fs/ocfs2/dlmglue.c	2005-09-17 01:04:46 UTC (rev 2591)
+++ trunk/fs/ocfs2/dlmglue.c	2005-09-17 01:29:33 UTC (rev 2592)
@@ -1299,6 +1299,8 @@
 	lvb->lvb_imtime_packed =
 		cpu_to_be64(ocfs2_pack_timespec(&inode->i_mtime));
 
+	mlog_meta_lvb(0, lockres);
+
 	mlog_exit_void();
 }
 
@@ -1318,21 +1320,10 @@
 
 	mlog_entry_void();
 
+	mlog_meta_lvb(0, lockres);
+
 	lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
 
-	mlog(0, "seq %u, trunc clusters %u, iclusters %u\n",
-	     be32_to_cpu(lvb->lvb.lvb_seq),
-	     be32_to_cpu(lvb->lvb_trunc_clusters),
-	     be32_to_cpu(lvb->lvb_iclusters));
-	mlog(0, "uid %u, gid %u, isize offset %u, mode 0x%x\n",
-	     be32_to_cpu(lvb->lvb_iuid), be32_to_cpu(lvb->lvb_igid),
-	     be32_to_cpu(lvb->lvb_isize_off), be16_to_cpu(lvb->lvb_imode));
-	mlog(0, "nlink %u, atime_packed %"MLFu64", ctime_packed %"MLFx64", "
-	     "mtime_packed %"MLFx64"\n",
-	     be16_to_cpu(lvb->lvb_inlink), be64_to_cpu(lvb->lvb_iatime_packed),
-	     be64_to_cpu(lvb->lvb_ictime_packed),
-	     be64_to_cpu(lvb->lvb_imtime_packed));
-
 	/* We're safe here without the lockres lock... */
 	spin_lock(&oi->ip_lock);
 	oi->ip_clusters = be32_to_cpu(lvb->lvb_iclusters);
@@ -2595,3 +2586,27 @@
 		lvb->lvb_trunc_clusters = cpu_to_be32(trunc_clusters);
 	spin_unlock(&lockres->l_lock);
 }
+
+/* This aids in debugging situations where a bad LVB might be involved. */
+void ocfs2_dump_meta_lvb_info(unsigned long level,
+			      const char *function,
+			      unsigned int line,
+			      struct ocfs2_lock_res *lockres)
+{
+	struct ocfs2_meta_lvb *lvb = (struct ocfs2_meta_lvb *) lockres->l_lksb.lvb;
+
+	mlog(level, "LVB information for %s (called from %s:%u):\n",
+	     lockres->l_name, function, line);
+	mlog(level, "trustable: %s, seq: %u, size_off: %u, clusters: %u\n",
+	     ocfs2_lvb_is_trustable(lockres) ? "yes" : "no",
+	     be32_to_cpu(lvb->lvb.lvb_seq), be32_to_cpu(lvb->lvb_isize_off),
+	     be32_to_cpu(lvb->lvb_iclusters));
+	mlog(level, "trunc clusters %u, uid %u, gid %u, mode 0x%x\n",
+	     be32_to_cpu(lvb->lvb_trunc_clusters), be32_to_cpu(lvb->lvb_iuid),
+	     be32_to_cpu(lvb->lvb_igid), be16_to_cpu(lvb->lvb_imode));
+	mlog(level, "nlink %u, atime_packed 0x%"MLFx64", "
+	     "ctime_packed 0x%"MLFx64", mtime_packed 0x%"MLFx64"\n",
+	     be16_to_cpu(lvb->lvb_inlink), be64_to_cpu(lvb->lvb_iatime_packed),
+	     be64_to_cpu(lvb->lvb_ictime_packed),
+	     be64_to_cpu(lvb->lvb_imtime_packed));
+}

Modified: trunk/fs/ocfs2/dlmglue.h
===================================================================
--- trunk/fs/ocfs2/dlmglue.h	2005-09-17 01:04:46 UTC (rev 2591)
+++ trunk/fs/ocfs2/dlmglue.h	2005-09-17 01:29:33 UTC (rev 2592)
@@ -121,5 +121,11 @@
 
 void ocfs2_meta_lvb_set_trunc_clusters(struct inode *inode,
 				       unsigned int trunc_clusters);
+/* aids in debugging and tracking lvbs */
+void ocfs2_dump_meta_lvb_info(unsigned long level,
+			      const char *function,
+			      unsigned int line,
+			      struct ocfs2_lock_res *lockres);
+#define mlog_meta_lvb(__level, __lockres) ocfs2_dump_meta_lvb_info(__level, __PRETTY_FUNCTION__, __LINE__, __lockres)
 
 #endif	/* DLMGLUE_H */



More information about the Ocfs2-commits mailing list