Re: [f2fs-dev] [PATCH] f2fs: avoid wrong decrypted data from disk

From: Sahitya Tummala
Date: Thu Aug 30 2018 - 03:49:52 EST


On Thu, Aug 30, 2018 at 11:59:03AM +0530, Sahitya Tummala wrote:
> On Mon, Aug 27, 2018 at 03:52:26PM -0700, Jaegeuk Kim wrote:
> > 1. Create a file in an encrypted directory
> > 2. Do GC & drop caches
> > 3. Read stale data before its bio for metapage was not issued yet
> >
> > Signed-off-by: Jaegeuk Kim <jaegeuk@xxxxxxxxxx>
> > ---
> > fs/f2fs/data.c | 7 +++++++
> > 1 file changed, 7 insertions(+)
> >
> > diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> > index 382c1ef9a9e4..c3557fd4a0bd 100644
> > --- a/fs/f2fs/data.c
> > +++ b/fs/f2fs/data.c
> > @@ -1550,6 +1550,13 @@ static int f2fs_mpage_readpages(struct address_space *mapping,
> > bio = NULL;
> > }
> > if (bio == NULL) {
> > + /*
> > + * If the page is under writeback, we need to wait for
> > + * its completion to see the correct decrypted data.
> > + */
> > + if (unlikely(f2fs_encrypted_file(inode)))
> > + f2fs_wait_on_block_writeback(F2FS_I_SB(inode), block_nr);
> > +
>
> I am not sure if this really helps the case.
>
> When the data is being moved by GC, the writeback is set on the encrypted page
> which belongs to meta mapping. But before that writeback could complete, the read
> will happen on the original file where it's corresponding page will not have any
> writeback set, right?

Never mind, got it. Tested with your latest v3 patch and it is fixing the
problem. Thanks.

>
> > bio = f2fs_grab_read_bio(inode, block_nr, nr_pages,
> > is_readahead ? REQ_RAHEAD : 0);
> > if (IS_ERR(bio)) {
> > --
> > 2.17.0.441.gb46fe60e1d-goog
> >
> >
> > ------------------------------------------------------------------------------
> > Check out the vibrant tech community on one of the world's most
> > engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> > _______________________________________________
> > Linux-f2fs-devel mailing list
> > Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
> > https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
>
> --
> --
> Sent by a consultant of the Qualcomm Innovation Center, Inc.
> The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

--
--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.