[Ocfs2-tools-devel] [PATCH 2/6] ocfs2: add debugfs.ocfs2 support to ocfs2 local alloc
Srinivas Eeda
srinivas.eeda at oracle.com
Mon May 7 16:49:06 PDT 2012
This patch enhances debugfs.ocfs2 to dump new ocfs2 local alloc record
structure
Signed-off-by: Srinivas Eeda <srinivas.eeda at oracle.com>
---
debugfs.ocfs2/dump.c | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/debugfs.ocfs2/dump.c b/debugfs.ocfs2/dump.c
index 902d49e..e43cd90 100644
--- a/debugfs.ocfs2/dump.c
+++ b/debugfs.ocfs2/dump.c
@@ -27,6 +27,7 @@
#include "main.h"
#include "ocfs2/byteorder.h"
+#include "ocfs2/bitops.h"
extern struct dbgfs_gbls gbls;
@@ -115,11 +116,48 @@ void dump_super_block(FILE *out, struct ocfs2_super_block *sb)
* dump_local_alloc()
*
*/
-void dump_local_alloc(FILE *out, struct ocfs2_local_alloc *loc)
+void dump_local_alloc(FILE *out, struct ocfs2_local_alloc *la)
{
- fprintf(out, "\tLocal Bitmap Offset: %u Size: %u\n",
- loc->la_bm_off, loc->la_size);
+ __le32 i, j, clusters, used;
+ void *bitmap = OCFS2_LOCAL_ALLOC_BITMAP(la);
+
+ /*
+ * If la_bm_off is set discontiguous localalloc is not enabled so we
+ * dump the old way.
+ */
+ if (la->la_bm_off || !(la->la_rec_count)) {
+ fprintf(out, "\tLocal Bitmap Offset: %u Size: %u\n",
+ la->la_bm_off, la->la_size);
+ return;
+ }
+
+ if (!la->la_rec_count)
+ return;
+ clusters = used = 0;
+ bitmap = OCFS2_LOCAL_ALLOC_BITMAP(la);
+ for (i = 0; i < la->la_rec_count; i++)
+ for (j = 0; j < la->la_recs[i].la_clusters; j++)
+ if (ocfs2_test_bit(clusters++, bitmap))
+ used++;
+
+ if (!clusters)
+ return;
+
+ fprintf(out, "\tSize: %u Total Records: %u Clusters: %u Used: %u\n",
+ la->la_size, la->la_rec_count, clusters, used);
+
+ clusters = 0;
+ fprintf(out, "\t## Start Clusters Used Free\n");
+ for (i = 0; i < la->la_rec_count; i++) {
+ used = 0;
+ for (j = 0; j < la->la_recs[i].la_clusters; j++)
+ if (ocfs2_test_bit(clusters++, bitmap))
+ used++;
+ fprintf(out, "\t%-4d %-8d %-6d %-6d %-6d\n",
+ i, la->la_recs[i].la_start, la->la_recs[i].la_clusters,
+ used, (la->la_recs[i].la_clusters - used));
+ }
return ;
}
--
1.5.4.3
More information about the Ocfs2-tools-devel
mailing list