On 2016/8/27 1:04, Jaegeuk Kim wrote:
> On Sat, Aug 27, 2016 at 12:14:32AM +0800, Chao Yu wrote:
>> From: Chao Yu <yuch...@huawei.com>
>>
>> Update node page under cp_rwsem in order to keep data consistency
>> during writting checkpoint.
>>
>> Signed-off-by: Chao Yu <yuch...@huawei.com>
>> ---
>>  fs/f2fs/inode.c | 5 ++++-
>>  1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
>> index 9ac5efc..1057c73 100644
>> --- a/fs/f2fs/inode.c
>> +++ b/fs/f2fs/inode.c
>> @@ -377,8 +377,11 @@ retry:
>>              goto retry;
>>      }
>>  
>> -    if (err)
>> +    if (err) {
>> +            f2fs_lock_op(sbi);
>>              update_inode_page(inode);
>> +            f2fs_unlock_op(sbi);
>> +    }
> 
> Any corner case?

No, just follow the old rule.

> Now, it allows updating node page when checkpoint is doing.

Oh, so for current rule, during checkpoint it:
1. allows updating meta info of inode which is not related to metadata of
filesystem (e.g. i_size, i_block, i_nlink..)
2. does not allow updating meta info of inode which is related to metadata of
filesystem (i_addr, i_nid..)

Is my understanding right?

Thanks,

> 
> Thanks,
> 
>>      sb_end_intwrite(inode->i_sb);
>>  no_delete:
>>      stat_dec_inline_xattr(inode);
>> -- 
>> 2.7.2
> 
> .
> 

Reply via email to