[Ocfs2-devel] [PATCH 3/7] fsdax: Copy data before write

Ruan Shiyang ruansy.fnst at cn.fujitsu.com
Mon Feb 8 17:53:10 PST 2021



On 2021/2/8 下午11:14, Christoph Hellwig wrote:
>>   	switch (iomap.type) {
>>   	case IOMAP_MAPPED:
>> +cow:
>>   		if (iomap.flags & IOMAP_F_NEW) {
>>   			count_vm_event(PGMAJFAULT);
>>   			count_memcg_event_mm(vma->vm_mm, PGMAJFAULT);
>>   			major = VM_FAULT_MAJOR;
>>   		}
>>   		error = dax_iomap_direct_access(&iomap, pos, PAGE_SIZE,
>> -						NULL, &pfn);
>> +						&kaddr, &pfn);
> 
> Any chance you could look into factoring out this code into a helper
> to avoid the goto magic, which is a little too convoluted?
> 
>>   	switch (iomap.type) {
>>   	case IOMAP_MAPPED:
>> +cow:
>>   		error = dax_iomap_direct_access(&iomap, pos, PMD_SIZE,
>> -						NULL, &pfn);
>> +						&kaddr, &pfn);
>>   		if (error < 0)
>>   			goto finish_iomap;
>>   
>>   		entry = dax_insert_entry(&xas, mapping, vmf, entry, pfn,
>>   						DAX_PMD, write && !sync);
>>   
>> +		if (srcmap.type != IOMAP_HOLE) {
> 
> Same here.

Thanks for suggestion.  I'll try it.


--
Thanks,
Ruan Shiyang.
> 
> 





More information about the Ocfs2-devel mailing list