[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