Re: [PATCH] btrfs-progs: Don't increase error count if the inode can be repaired.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <quwenruo@xxxxxxxxxxxxxx>

Reviewed-by: Satoru Takeuchi <takeuchi_satoru@xxxxxxxxxxxxxx>

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux