Hi Chao,

On 2017/3/1 17:32, Chao Yu wrote:
> On 2017/3/1 17:21, Yunlei He wrote:
>> Skip writeback meta pages if cp_mutex lock acquire failed, cp will
>> flush dirty pages instead.
>
> Make sense to me. :)
>
>>
>> Signed-off-by: Yunlei He <heyun...@huawei.com>
>> ---
>>  fs/f2fs/checkpoint.c | 12 +++++++-----
>>  1 file changed, 7 insertions(+), 5 deletions(-)
>>
>> diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c
>> index 0339daf..5ce24b1 100644
>> --- a/fs/f2fs/checkpoint.c
>> +++ b/fs/f2fs/checkpoint.c
>> @@ -275,13 +275,15 @@ static int f2fs_write_meta_pages(struct address_space 
>> *mapping,
>>              get_pages(sbi, F2FS_DIRTY_META) < nr_pages_to_skip(sbi, META))
>>              goto skip_write;
>>
>> -    trace_f2fs_writepages(mapping->host, wbc, META);
>> +    /* if locked failed, cp will flush dirty pages instead */
>> +    if (mutex_trylock(&sbi->cp_mutex)) {
>> +            diff = nr_pages_to_write(sbi, META, wbc);
>> +            written = sync_meta_pages(sbi, META, wbc->nr_to_write);
>> +    } else
>> +            goto skip_write;
>
> Would it be better to change:
>
> /* your comments */
> if (!mutex_trylock(&sbi->cp_mutex))
>       goto skip_write;
>
> trace_f2fs_writepages();
> diff = nr_pages_to_write();
> ...
>
> Thanks,
Yes, it's better, I'll send a new version.

Thanks.
>
>>
>> -    /* if mounting is failed, skip writing node pages */
>> -    mutex_lock(&sbi->cp_mutex);
>> -    diff = nr_pages_to_write(sbi, META, wbc);
>> -    written = sync_meta_pages(sbi, META, wbc->nr_to_write);
>>      mutex_unlock(&sbi->cp_mutex);
>> +    trace_f2fs_writepages(mapping->host, wbc, META);
>>      wbc->nr_to_write = max((long)0, wbc->nr_to_write - written - diff);
>>      return 0;
>>
>>
>
>
> .
>


------------------------------------------------------------------------------
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@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to