* [PATCH] btrfs-progs: Don't increase error count if the inode can be repaired.
@ 2014-12-22 2:53 Qu Wenruo
2014-12-22 3:09 ` Satoru Takeuchi
0 siblings, 1 reply; 2+ messages in thread
From: Qu Wenruo @ 2014-12-22 2:53 UTC (permalink / raw)
To: linux-btrfs; +Cc: fdmanana
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@cn.fujitsu.com>
---
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)
--
2.2.0
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] btrfs-progs: Don't increase error count if the inode can be repaired.
2014-12-22 2:53 [PATCH] btrfs-progs: Don't increase error count if the inode can be repaired Qu Wenruo
@ 2014-12-22 3:09 ` Satoru Takeuchi
0 siblings, 0 replies; 2+ messages in thread
From: Satoru Takeuchi @ 2014-12-22 3:09 UTC (permalink / raw)
To: Qu Wenruo, linux-btrfs; +Cc: fdmanana
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@cn.fujitsu.com>
Reviewed-by: Satoru Takeuchi <takeuchi_satoru@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)
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-12-22 3:09 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-22 2:53 [PATCH] btrfs-progs: Don't increase error count if the inode can be repaired Qu Wenruo
2014-12-22 3:09 ` Satoru Takeuchi
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).