On 2014/12/22 11:53, Qu Wenruo wrote:
> The original check_inode_recs() will return -1 if found any error in a
> inode_record. This is OK for original design since there is almost
> nothing can repair at that time.
> 
> However more and more error from nlink mismatch to missing inode item
> can be repaired in try_repair_inode(), check_inode_recs() should not
> increase the error count if the inode can be repair.
> 
> With this patch, repair function for leaf-corruption will not return
> error if all corruption inode can be recovered.
> 
> Signed-off-by: Qu Wenruo <quwen...@cn.fujitsu.com>

Reviewed-by: Satoru Takeuchi <takeuchi_sat...@jp.fujitsu.com>

Thanks,
Satoru

> ---
>   cmds-check.c | 5 +++--
>   1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/cmds-check.c b/cmds-check.c
> index 3e7a4eb..aa47984 100644
> --- a/cmds-check.c
> +++ b/cmds-check.c
> @@ -2302,7 +2302,7 @@ static int check_inode_recs(struct btrfs_root *root,
>       struct inode_record *rec;
>       struct inode_backref *backref;
>       int stage = 0;
> -     int ret;
> +     int ret = 0;
>       int err = 0;
>       u64 error = 0;
>       u64 root_dirid = btrfs_root_dirid(&root->root_item);
> @@ -2452,7 +2452,8 @@ static int check_inode_recs(struct btrfs_root *root,
>                       ret = 0;
>               }
>   
> -             error++;
> +             if (!(repair && ret == 0))
> +                     error++;
>               print_inode_error(root, rec);
>               list_for_each_entry(backref, &rec->backrefs, list) {
>                       if (!backref->found_dir_item)
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to