On Fri, Jul 04, 2014 at 02:12:36PM +0800, Wang Shilong wrote: > OK, i found there is a mirror num recorded in struct > @extent_buffer, so it is not diffcult > to locate the real physical address that this corrupt metadata block > locates. > > But another question is that if such problems happen, it should also > help little, because > usually other mirrors maybe have the same errors... I understand, although at least knowing which filesystem has the problem, whether it got auto corrected, or not, is good.
Imagine if I get 500 of those errors in syslog. Even if btrfs can auto correct them, as an admin, I would want to know this because it means something likely bad happened and I may want to inspect that filesystem for damage, or the hardware for faults. So the extra output is very useful, thank you. > Anyway, let me see if there are any other output even dose not > output btrfs specific info. Thank you very much. On Fri, Jul 04, 2014 at 05:59:06PM +0800, Wang Shilong wrote: > Marc argued that if there are several btrfs filesystems mounted, > while users even don't know which filesystem hit the corrupted > errors something like generation verification failure. > > Since @extent_buffer structure has a member @fs_info, let's output > btrfs device info. I don't know the btrfs code much, but looking at the patch, it looks good, thank you for that. Marc > Reported-by: Marc MERLIN <[email protected]> > Signed-off-by: Wang Shilong <[email protected]> > --- > Tell me if missed anything here... > --- > fs/btrfs/disk-io.c | 14 +++++++------- > 1 file changed, 7 insertions(+), 7 deletions(-) > > diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c > index 08e65e9..bd52ca0 100644 > --- a/fs/btrfs/disk-io.c > +++ b/fs/btrfs/disk-io.c > @@ -351,9 +351,9 @@ static int verify_parent_transid(struct extent_io_tree > *io_tree, > ret = 0; > goto out; > } > - printk_ratelimited("parent transid verify failed on %llu wanted %llu " > - "found %llu\n", > - eb->start, parent_transid, btrfs_header_generation(eb)); > + printk_ratelimited("BTRFS (device %s): parent transid verify failed on > %llu wanted %llu found %llu\n", > + eb->fs_info->sb->s_id, eb->start, > + parent_transid, btrfs_header_generation(eb)); > ret = 1; > > /* > @@ -617,15 +617,15 @@ static int btree_readpage_end_io_hook(struct > btrfs_io_bio *io_bio, > > found_start = btrfs_header_bytenr(eb); > if (found_start != eb->start) { > - printk_ratelimited(KERN_INFO "BTRFS: bad tree block start " > + printk_ratelimited(KERN_INFO "BTRFS (device %s): bad tree block > start " > "%llu %llu\n", > - found_start, eb->start); > + eb->fs_info->sb->s_id, found_start, eb->start); > ret = -EIO; > goto err; > } > if (check_tree_block_fsid(root, eb)) { > - printk_ratelimited(KERN_INFO "BTRFS: bad fsid on block %llu\n", > - eb->start); > + printk_ratelimited(KERN_INFO "BTRFS (device %s): bad fsid on > block %llu\n", > + eb->fs_info->sb->s_id, eb->start); > ret = -EIO; > goto err; > } > -- > 1.8.3.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in > the body of a message to [email protected] > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- "A mouse is a device used to point at the xterm you want to type in" - A.S.R. Microsoft is to operating systems .... .... what McDonalds is to gourmet cooking Home page: http://marc.merlins.org/ | PGP 1024R/763BE901 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
