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,

Josef
--
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