Messages in this thread | ![/](/images/icornerl.gif) | | Date | Thu, 11 Apr 2024 17:08:44 +0800 | Subject | Re: [f2fs-dev] [PATCH 3/3] f2fs: fix false alarm on invalid block address | From | Chao Yu <> |
| |
On 2024/4/10 4:34, Jaegeuk Kim wrote: > f2fs_ra_meta_pages can try to read ahead on invalid block address which is > not the corruption case.
In which case we will read ahead invalid meta pages? recovery w/ META_POR?
Thanks,
> > Fixes: 31f85ccc84b8 ("f2fs: unify the error handling of f2fs_is_valid_blkaddr") > Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org> > --- > fs/f2fs/checkpoint.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c > index eac698b8dd38..b01320502624 100644 > --- a/fs/f2fs/checkpoint.c > +++ b/fs/f2fs/checkpoint.c > @@ -179,22 +179,22 @@ static bool __f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi, > break; > case META_SIT: > if (unlikely(blkaddr >= SIT_BLK_CNT(sbi))) > - goto err; > + goto check_only; > break; > case META_SSA: > if (unlikely(blkaddr >= MAIN_BLKADDR(sbi) || > blkaddr < SM_I(sbi)->ssa_blkaddr)) > - goto err; > + goto check_only; > break; > case META_CP: > if (unlikely(blkaddr >= SIT_I(sbi)->sit_base_addr || > blkaddr < __start_cp_addr(sbi))) > - goto err; > + goto check_only; > break; > case META_POR: > if (unlikely(blkaddr >= MAX_BLKADDR(sbi) || > blkaddr < MAIN_BLKADDR(sbi))) > - goto err; > + goto check_only; > break; > case DATA_GENERIC: > case DATA_GENERIC_ENHANCE: > @@ -228,6 +228,7 @@ static bool __f2fs_is_valid_blkaddr(struct f2fs_sb_info *sbi, > return true; > err: > f2fs_handle_error(sbi, ERROR_INVALID_BLKADDR); > +check_only: > return false; > } >
| ![\](/images/icornerr.gif) |