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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
