Re: [PATCH] f2fs: avoid GC causing encrypted file corrupted
From: Jaegeuk Kim
Date: Wed Nov 14 2018 - 17:28:14 EST
On 11/13, Chao Yu wrote:
> Jaegeuk,
>
> On 2018/9/18 21:21, Chao Yu wrote:
> > On 2018/9/18 20:39, Yunlong Song wrote:
> >> The encrypted file may be corrupted by GC in following case:
> >>
> >> Time 1: | segment 1 blkaddr = A | GC -> | segment 2 blkaddr = B |
> >> Encrypted block 1 is moved from blkaddr A of segment 1 to blkaddr B of
> >> segment 2,
> >>
> >> Time 2: | segment 1 blkaddr = B | GC -> | segment 3 blkaddr = C |
> >>
> >> Before page 1 is written back and if segment 2 become a victim, then
> >> page 1 is moved from blkaddr B of segment 2 to blkaddr Cof segment 3,
> >> during the GC process of Time 2, f2fs should wait for page 1 written back
> >> before reading it, or move_data_block will read a garbage block from
> >> blkaddr B since page is not written back to blkaddr B yet.
> >>
> >> Commit 6aa58d8a ("f2fs: readahead encrypted block during GC") introduce
> >> ra_data_block to read encrypted block, but it forgets to add
> >> f2fs_wait_on_page_writeback to avoid racing between GC and flush.
> >>
> >> Signed-off-by: Yunlong Song <yunlong.song@xxxxxxxxxx>
> >
> > Reviewed-by: Chao Yu <yuchao0@xxxxxxxxxx>
>
> I've reviewed this patch, could you add missing tag in the patch located in
> dev-test branch?
Sorry, done.
>
> Thanks,
>
> >
> > Thanks,
> >
> > .
> >