[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <c8be257c-833f-4394-937d-eab515ad6996@oracle.com>
Date: Fri, 26 Jul 2024 15:29:48 +0100
From: John Garry <john.g.garry@...cle.com>
To: Dave Chinner <david@...morbit.com>
Cc: djwong@...nel.org, hch@....de, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, linux-xfs@...r.kernel.org
Subject: Re: [PATCH v3 14/21] iomap: Sub-extent zeroing
On 01/05/2024 02:07, Dave Chinner wrote:
[trim list a bit]
> On Mon, Apr 29, 2024 at 05:47:39PM +0000, John Garry wrote:
>> For FS_XFLAG_FORCEALIGN support, we want to treat any sub-extent IO like
>> sub-fsblock DIO, in that we will zero the sub-extent when the mapping is
>> unwritten.
>>
>> This will be important for atomic writes support, in that atomically
>> writing over a partially written extent would mean that we would need to
>> do the unwritten extent conversion write separately, and the write could
>> no longer be atomic.
I have been considering another approach to solve this problem.
In this patch - as you know - we zero unwritten parts of a newly
allocated extent. This is so that when we later issue an atomic write,
we would not have the problem of unwritten extents and how the iomap
iterator will create multiple BIOs (which is not permitted).
How about an alternate approach like this:
- no sub-extent zeroing
- iomap iter is changed to allocate a single BIO for an atomic write in
first iteration
- each iomap extent iteration appends data to that same BIO
- when finished iterating, we submit the BIO
Obviously that will mean many changes to the iomap bio iterator, but is
quite self-contained.
John
Powered by blists - more mailing lists