[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170228140455.GB9371@infradead.org>
Date: Tue, 28 Feb 2017 06:04:55 -0800
From: Christoph Hellwig <hch@...radead.org>
To: Brian Foster <bfoster@...hat.com>
Cc: Xiong Zhou <xzhou@...hat.com>, linux-xfs@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org,
Christoph Hellwig <hch@...radead.org>
Subject: Re: LTP write03 writev07 xfs failures
On Mon, Feb 27, 2017 at 03:13:35PM -0500, Brian Foster wrote:
> After playing around a bit, I don't think using i_size is the right
> approach either. It just exacerbates the original problem on buffered
> writes into sparse files. We can end up leaving around however many
> delalloc blocks we've allocated.
>
> I think we need a way to differentiate preexisting (previously written)
> delalloc blocks from those allocated and unused by the current write. We
> might be able to do that by looking at the pagecache, but I think that
> means looking at the buffer state to make sure we handle sub-page block
> sizes correctly. I.e., make *_iomap_end_delalloc() punch out all
> delalloc blocks in the non-written range that are either not page backed
> or not dirty+delalloc buffer backed. Hm?
That sounds ugly, but right off my mind I see no other way. I'll need
to take a look at what the old pre-iomap code did there, as I think
none of these issues happened there.
Powered by blists - more mailing lists