>-----Original Message-----
>From: Yuchao (T)
>Sent: Thursday, January 04, 2018 11:02 AM
>To: heyunlei; [email protected]; [email protected]
>Cc: Wangbintian; Jianing (Euler)
>Subject: Re: [f2fs-dev][PATCH] f2fs: update inode info to inode page for new 
>file
>
>On 2018/1/3 18:03, Yunlei He wrote:
>>                      |
>>                      | 1. creat a new file A ,(with dirty inode
>>                      |    && dirty inode page && xattr info)
>>                      | 2. backgroud wb write back file A inode
>>      last checkpoint |    page (without update from inode cache)
>>                      | 3. fsync file A, write back inode page of
>>                      |    file A with inode cache info
>>                      | 4. sudden power off before new checkpoint
>>
>> In this case, recovery process will try to recover a zero inode
>> page. Inline xattr flag of file A will be miss and xattr info
>> will be taken as blkaddr index.
>>
>> Signed-off-by: Yunlei He <[email protected]>
>> ---
>>  fs/f2fs/dir.c | 2 ++
>>  1 file changed, 2 insertions(+)
>>
>> diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
>> index 724304d..d04dcac 100644
>> --- a/fs/f2fs/dir.c
>> +++ b/fs/f2fs/dir.c
>> @@ -427,6 +427,8 @@ struct page *init_inode_metadata(struct inode *inode, 
>> struct inode *dir,
>>                      remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino);
>>              f2fs_i_links_write(inode, true);
>>      }
>> +
>> +    update_inode(inode, page);
>
>That would cause memory copy overhead, how about always keeping consistent
>in-memory inode meta info with the data in recovering inode block as below:
>
>recover_inline_xattr()
>
>       if (ri->i_inline & F2FS_INLINE_XATTR) {
>               set_inode_flag(inode, FI_INLINE_XATTR);
>       } else {
>               clear_inode_flag(inode, FI_INLINE_XATTR);
>               goto update_inode;
>       }
>
>Thanks, 

Okay, My f2fs module is not support flexible inline xattr size, this change is 
enough
for this problem.

Thanks.

>
>>      return page;
>>
>>  put_error:
>>


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