Hi Jaegeuk, On 2017/3/14 2:30, Jaegeuk Kim wrote: > On 03/10, Yunlei He wrote: >> If an encrypted block has been read to memory, we just dirty it >> and return directly. >> >> Signed-off-by: Yunlei He <[email protected]> >> --- >> fs/f2fs/gc.c | 11 +++++++++-- >> 1 file changed, 9 insertions(+), 2 deletions(-) >> >> diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c >> index 418fd98..ca94518 100644 >> --- a/fs/f2fs/gc.c >> +++ b/fs/f2fs/gc.c >> @@ -564,7 +564,7 @@ static bool is_alive(struct f2fs_sb_info *sbi, struct >> f2fs_summary *sum, >> } >> >> static void move_encrypted_block(struct inode *inode, block_t bidx, >> - unsigned int segno, int >> off) >> + int gc_type, unsigned int segno, int >> off) >> { >> struct f2fs_io_info fio = { >> .sbi = F2FS_I_SB(inode), >> @@ -607,6 +607,12 @@ static void move_encrypted_block(struct inode *inode, >> block_t bidx, >> */ >> f2fs_wait_on_page_writeback(page, DATA, true); >> >> + if (gc_type == BG_GC && PageUptodate(page) && >> + fscrypt_has_encryption_key(inode)) { > > Why do we need the encryption key?
Here I am afraid some cases dirty encrypted pages have no authority to write back. Thanks. > > Thanks, > >> + set_page_dirty(page); >> + goto put_out; >> + } >> + >> get_node_info(fio.sbi, dn.nid, &ni); >> set_summary(&sum, dn.nid, dn.ofs_in_node, ni.version); >> >> @@ -827,7 +833,8 @@ static void gc_data_segment(struct f2fs_sb_info *sbi, >> struct f2fs_summary *sum, >> start_bidx = start_bidx_of_node(nofs, inode) >> + ofs_in_node; >> if (f2fs_encrypted_inode(inode) && >> S_ISREG(inode->i_mode)) >> - move_encrypted_block(inode, start_bidx, segno, >> off); >> + move_encrypted_block(inode, start_bidx, >> + gc_type, segno, >> off); >> else >> move_data_page(inode, start_bidx, gc_type, >> segno, off); >> >> -- >> 2.10.1 >> >> >> ------------------------------------------------------------------------------ >> Announcing the Oxford Dictionaries API! The API offers world-renowned >> dictionary content that is easy and intuitive to access. Sign up for an >> account today to start using our lexical data to power your apps and >> projects. Get started today and enter our developer competition. >> http://sdm.link/oxford >> _______________________________________________ >> Linux-f2fs-devel mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel > > . > ------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
