[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20120305154213.GC21356@thunk.org>
Date: Mon, 5 Mar 2012 10:42:13 -0500
From: Ted Ts'o <tytso@....edu>
To: Curt Wohlgemuth <curtw@...gle.com>
Cc: adilger.kernel@...ger.ca, linux-ext4@...r.kernel.org
Subject: Re: [PATCH] ext4: Don't release page refs in ext4_end_bio()
On Fri, Mar 02, 2012 at 08:19:59AM -0800, Curt Wohlgemuth wrote:
> We can clear PageWriteback on each page when the IO
> completes, but we can't release the references on the page
> until we convert any uninitialized extents.
>
> Without this patch, the use of the dioread_nolock mount
> option can break buffered writes, because extents may
> not be converted by the time a subsequent buffered read
> comes in; if the page is not in the page cache, a read
> will return zeros if the extent is still uninitialized.
>
> I tested this with a (temporary) patch that adds a call
> to msleep(1000) at the start of ext4_end_io_work(), to delay
> processing of each DIO-unwritten work queue item. With this
> msleep(), a simple workload of
>
> fallocate
> write
> fadvise
> read
>
> will fail without this patch, succeeds with it.
>
> Signed-off-by: Curt Wohlgemuth <curtw@...gle.com>
Thanks, applied.
- Ted
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists