Hi Daeho,

On 2018/1/9 19:05, Daeho Jeong wrote:
> Hi Chao,
>  
> 
>>>  Now, we set flags of a newly created inode using set_cold_files() in
>>>  advance of creating a new node page. By this, some inodes whose node
>>  > page is not created yet can be linked into the global dirty list.
>>  >
>>  > If the checkpoint is executed at this moment, the inode will be written
>>  > back by writeback_single_inode() and finally update_inode_page() will
>>  > fail to detach the inode from the global dirty list because the inode
>>  > doesn't have a node page.
>>  >
>>  > The problem is that the inode's state in VFS layer will become clean
>>  > after execution of writeback_single_inode() and it's still linked in
>>  > the global dirty list of f2fs and this will cause a kernel panic.
>  
>> Before set_cold_files, In f2fs_new_inode, we will also dirty inode, so if
>> we only relocate code file initialization, would we suffer the same issue
>> due to below reason? If so, instead, how about check FI_NEW_INODE flag
>> during global dirty list flushing to decide whether we should flush that
>> inode? How do you think?
>  
>> Thanks,
> 
> Oops, I missed f2fs_set_encrypted_inode() in f2fs_new_inode(), because we
> turned off the filesystem encryption feature.
> 
> If we skip the inode which is set with FI_NEW_INODE flag during global
> dirty list flushing in block_operations(), we need to iterate again and
> again in block_operations() till the new inode is added to its parent inode
> and FI_NEW_INODE flag is cleared.

One solution can be that moving that inode to temp list, after flushing all
other inode, then moving them back to original one.

> 
> How about that we don't do anything for the inode having FI_NEW_INODE flag
> in f2fs_mark_inode_dirty_sync() and invoke f2fs_mark_inode_dirty_sync()
> right after we clear FI_NEW_INODE flag in update_parent_metadata()?

Ah, I think it will be better. :)
Please notice that f2fs_do_tmpfile should be covered as well like we did in
update_parent_metadata.

Thanks,

> 
> Thanks,
> 
> 
> 
> 
> ------------------------------------------------------------------------------
> 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
> 

------------------------------------------------------------------------------
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

Reply via email to