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

Reply via email to