Messages in this thread | | | Date | Mon, 8 Feb 2021 16:14:19 +0100 | From | Christoph Hellwig <> | Subject | Re: [PATCH 3/7] fsdax: Copy data before write |
| |
> 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.
| |