[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20121224111745.GA12051@gmail.com>
Date: Mon, 24 Dec 2012 19:17:45 +0800
From: Zheng Liu <gnehzuil.liu@...il.com>
To: Theodore Ts'o <tytso@....edu>
Cc: Jan Kara <jack@...e.cz>, Dmitry Monakhov <dmonakhov@...nvz.org>,
linux-ext4@...r.kernel.org
Subject: Re: Uninitialized extent races
On Fri, Dec 21, 2012 at 01:02:43PM -0500, Theodore Ts'o wrote:
> On Fri, Dec 21, 2012 at 05:19:29PM +0100, Jan Kara wrote:
> > No, I'm speaking about merging currently uninitialized extents. I.e.
> > suppose someone does the following on a filesystem with dioread_nolock so
> > that writeback happens via unwritten extents:
> > fd = open("file", O_RDWR);
> > pwrite(fd, buf, 4096, 0);
> > flusher thread starts writing
> > we create uninitialized extent for
> > range 0-4096
> > fallocate(fd, 0, 4096, 4096);
> > - we merge extents and now have just 1 uninitialized extent for range
> > 0-8192
> > ext4_convert_unwritten_extents() now
> > has to split the extent to finish
> > the IO.
>
> Ah, I see. Disabling the the merging that might take place as a
> result of the fallocate. Yes, I agree that's a completely sane thing
> to do.
>
> The alternate approach would be to add a flag in the extent status
> tree indicating that an unwritten conversion is pending, but that
> would add more complexity.
Hi Ted and Jan,
Sorry for delay reply. Indeed we could add a flag in extent status tree
to indicate an pending unwritten extent, and I believe that it can bring
us some benefits. But I wonder whether this case often happens. Do we
have some real workloads?
Regards,
- Zheng
--
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