On Wed, Oct 09, 2013 at 08:57:12AM -0400, Josef Bacik wrote:
> On Wed, Oct 09, 2013 at 06:07:20PM +0800, Liu Bo wrote:
> > On Tue, Oct 08, 2013 at 01:31:57PM -0400, Josef Bacik wrote:
> > > Liu fixed part of this problem and unfortunately I steered him in 
> > > slightly the
> > > wrong direction and so didn't completely fix the problem.  The problem is 
> > > we
> > > limit the size of the delalloc range we are looking for to max bytes and 
> > > then we
> > > try to lock that range.  If we fail to lock the pages in that range we 
> > > will
> > > shrink the max bytes to a single page and re loop.  However if our first 
> > > page is
> > > inside of the delalloc range then we will end up limiting the end of the 
> > > range
> > > to a period before our first page.  This is illustrated below
> > > 
> > > [0 -------- delalloc range --------- 256mb]
> > >                                   [page]
> > > 
> > > So find_delalloc_range will return with delalloc_start as 0 and end as 
> > > 128mb,
> > > and then we will notice that delalloc_start < *start and adjust it up, 
> > > but not
> > > adjust delalloc_end up, so things go sideways.  To fix this we need to 
> > > not limit
> > 
> > This makes me more confused...
> > so do you mean that 'delalloc_end < delalloc_start' leads to the not locked 
> > pages?
> > 
> 
> No, it leads to an infinite loop, I still have no idea how that guy was seeing
> unlocked pages with you patch :(.  Thanks,

Oh infinite loop yah, that makes sense :)

-liubo
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to