[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3f2826a8-df98-e7b0-6ab8-0f410488bc55@cn.fujitsu.com>
Date: Tue, 9 Feb 2021 09:53:10 +0800
From: Ruan Shiyang <ruansy.fnst@...fujitsu.com>
To: Christoph Hellwig <hch@....de>
CC: <linux-kernel@...r.kernel.org>, <linux-xfs@...r.kernel.org>,
<linux-nvdimm@...ts.01.org>, <linux-fsdevel@...r.kernel.org>,
<darrick.wong@...cle.com>, <dan.j.williams@...el.com>,
<willy@...radead.org>, <jack@...e.cz>, <viro@...iv.linux.org.uk>,
<linux-btrfs@...r.kernel.org>, <ocfs2-devel@....oracle.com>,
<david@...morbit.com>, <rgoldwyn@...e.de>
Subject: Re: [PATCH 3/7] fsdax: Copy data before write
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.
>
>
Powered by blists - more mailing lists