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