[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-nilfs
Subject:    [PATCH 11/24] nilfs2: implement recovery subsystem debugging output
From:       Vyacheslav Dubeyko <slava () dubeyko ! com>
Date:       2013-06-17 12:24:19
Message-ID: 1371471859.2075.142.camel () slavad-ubuntu
[Download RAW message or body]

From: Vyacheslav Dubeyko <slava@dubeyko.com>
Subject: [PATCH 11/24] nilfs2: implement recovery subsystem debugging output

This patch adds debugging output by means of nilfs2_debug() method
into modules that are grouped by recovery subsystem debugging output
option (CONFIG_NILFS2_DEBUG_RECOVERY_SUBSYSTEM).

Signed-off-by: Vyacheslav Dubeyko <slava@dubeyko.com>
CC: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
---
 fs/nilfs2/recovery.c |   63 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
index ff00a0b..1099ba1 100644
--- a/fs/nilfs2/recovery.c
+++ b/fs/nilfs2/recovery.c
@@ -110,6 +110,11 @@ static int nilfs_compute_checksum(struct the_nilfs *nilfs,
 	unsigned long size;
 	u32 crc;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, bhs %p, sum %p, offset %lu"
+			"check_bytes %llu, start %lu, nblock %lu\n",
+			nilfs, bhs, sum, offset, check_bytes, start, nblock);
+
 	BUG_ON(offset >= blocksize);
 	check_bytes -= offset;
 	size = min_t(u64, check_bytes, blocksize - offset);
@@ -147,6 +152,10 @@ int nilfs_read_super_root_block(struct the_nilfs *nilfs, sector_t sr_block,
 	u32 crc;
 	int ret;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, sr_block %lu, pbh %p, check %d\n",
+			nilfs, sr_block, pbh, check);
+
 	*pbh = NULL;
 	bh_sr = __bread(nilfs->ns_bdev, sr_block, nilfs->ns_blocksize);
 	if (unlikely(!bh_sr)) {
@@ -195,6 +204,10 @@ nilfs_read_log_header(struct the_nilfs *nilfs, sector_t start_blocknr,
 {
 	struct buffer_head *bh_sum;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, start_blocknr %lu, sum %p\n",
+			nilfs, start_blocknr, sum);
+
 	bh_sum = __bread(nilfs->ns_bdev, start_blocknr, nilfs->ns_blocksize);
 	if (bh_sum)
 		*sum = (struct nilfs_segment_summary *)bh_sum->b_data;
@@ -216,6 +229,10 @@ static int nilfs_validate_log(struct the_nilfs *nilfs, u64 seg_seq,
 	u32 crc;
 	int ret;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, seg_seq %llu, bh_sum %p, sum %p\n",
+			nilfs, seg_seq, bh_sum, sum);
+
 	ret = NILFS_SEG_FAIL_MAGIC;
 	if (le32_to_cpu(sum->ss_magic) != NILFS_SEGSUM_MAGIC)
 		goto out;
@@ -258,6 +275,10 @@ static void *nilfs_read_summary_info(struct the_nilfs *nilfs,
 	void *ptr;
 	sector_t blocknr;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, pbh %p, offset %u, bytes %u\n",
+			nilfs, pbh, *offset, bytes);
+
 	BUG_ON((*pbh)->b_size < *offset);
 	if (bytes > (*pbh)->b_size - *offset) {
 		blocknr = (*pbh)->b_blocknr;
@@ -270,6 +291,9 @@ static void *nilfs_read_summary_info(struct the_nilfs *nilfs,
 	}
 	ptr = (*pbh)->b_data + *offset;
 	*offset += bytes;
+
+	nilfs2_debug(DBG_RECOVERY, "calculated offset %u\n", *offset);
+
 	return ptr;
 }
 
@@ -289,6 +313,10 @@ static void nilfs_skip_summary_info(struct the_nilfs *nilfs,
 	unsigned int rest_item_in_current_block
 		= ((*pbh)->b_size - *offset) / bytes;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, pbh %p, offset %u, bytes %u, count %lu\n",
+			nilfs, pbh, *offset, bytes, count);
+
 	if (count <= rest_item_in_current_block) {
 		*offset += bytes * count;
 	} else {
@@ -304,6 +332,8 @@ static void nilfs_skip_summary_info(struct the_nilfs *nilfs,
 		*pbh = __bread(nilfs->ns_bdev, blocknr + bcnt,
 			       nilfs->ns_blocksize);
 	}
+
+	nilfs2_debug(DBG_RECOVERY, "calculated offset %u\n", *offset);
 }
 
 /**
@@ -324,6 +354,10 @@ static int nilfs_scan_dsync_log(struct the_nilfs *nilfs, sector_t start_blocknr,
 	ino_t ino;
 	int err = -EIO;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, start_blocknr %lu, sum %p, head %p\n",
+			nilfs, start_blocknr, sum, head);
+
 	nfinfo = le32_to_cpu(sum->ss_nfinfo);
 	if (!nfinfo)
 		return 0;
@@ -404,6 +438,9 @@ static int nilfs_segment_list_add(struct list_head *head, __u64 segnum)
 {
 	struct nilfs_segment_entry *ent = kmalloc(sizeof(*ent), GFP_NOFS);
 
+	nilfs2_debug(DBG_RECOVERY,
+			"head %p, segnum %llu\n", head, segnum);
+
 	if (unlikely(!ent))
 		return -ENOMEM;
 
@@ -435,6 +472,9 @@ static int nilfs_prepare_segment_for_recovery(struct the_nilfs *nilfs,
 	int err;
 	int i;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, sb %p, ri %p\n", nilfs, sb, ri);
+
 	segnum[0] = nilfs->ns_segnum;
 	segnum[1] = nilfs->ns_nextnum;
 	segnum[2] = ri->ri_segnum;
@@ -489,6 +529,10 @@ static int nilfs_recovery_copy_block(struct the_nilfs *nilfs,
 	struct buffer_head *bh_org;
 	void *kaddr;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, rb %p, i_ino %lu\n",
+			nilfs, rb, page->mapping->host->i_ino);
+
 	bh_org = __bread(nilfs->ns_bdev, rb->blocknr, nilfs->ns_blocksize);
 	if (unlikely(!bh_org))
 		return -EIO;
@@ -513,6 +557,11 @@ static int nilfs_recover_dsync_blocks(struct the_nilfs *nilfs,
 	loff_t pos;
 	int err = 0, err2 = 0;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, sb %p, root %p, "
+			"head %p, nr_salvaged_blocks %p\n",
+			nilfs, sb, root, head, nr_salvaged_blocks);
+
 	list_for_each_entry_safe(rb, n, head, list) {
 		inode = nilfs_iget(sb, root, rb->ino);
 		if (IS_ERR(inode)) {
@@ -598,6 +647,10 @@ static int nilfs_do_roll_forward(struct the_nilfs *nilfs,
 	};
 	int state = RF_INIT_ST;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, sb %p, root %p, ri %p\n",
+			nilfs, sb, root, ri);
+
 	pseg_start = ri->ri_lsegs_start;
 	seg_seq = ri->ri_lsegs_start_seq;
 	segnum = nilfs_get_segnum_of_block(nilfs, pseg_start);
@@ -706,6 +759,9 @@ static void nilfs_finish_roll_forward(struct the_nilfs *nilfs,
 	struct buffer_head *bh;
 	int err;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, ri %p\n", nilfs, ri);
+
 	if (nilfs_get_segnum_of_block(nilfs, ri->ri_lsegs_start) !=
 	    nilfs_get_segnum_of_block(nilfs, ri->ri_super_root))
 		return;
@@ -748,6 +804,10 @@ int nilfs_salvage_orphan_logs(struct the_nilfs *nilfs,
 	struct nilfs_root *root;
 	int err;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, sb %p, ri %p\n",
+			nilfs, sb, ri);
+
 	if (ri->ri_lsegs_start == 0 || ri->ri_lsegs_end == 0)
 		return 0;
 
@@ -827,6 +887,9 @@ int nilfs_search_super_root(struct the_nilfs *nilfs,
 	int empty_seg = 0, scan_newer = 0;
 	int ret;
 
+	nilfs2_debug(DBG_RECOVERY,
+			"nilfs %p, ri %p\n", nilfs, ri);
+
 	pseg_start = nilfs->ns_last_pseg;
 	seg_seq = nilfs->ns_last_seq;
 	cno = nilfs->ns_last_cno;
-- 
1.7.9.5



--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic