[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