Hi Miao, thank you for addressing the issue. I will try out this 5/5 patchset and let you know what I see. I will apply it on top of latest for-linus branch.
Thanks, Alex. On Wed, Jan 23, 2013 at 10:58 AM, Miao Xie <mi...@cn.fujitsu.com> wrote: > On wed, 23 Jan 2013 16:17:53 +0800, Liu Bo wrote: >> On Wed, Jan 23, 2013 at 02:33:27PM +0800, Miao Xie wrote: >>> On wed, 23 Jan 2013 14:06:21 +0800, Liu Bo wrote: >>>> On Wed, Jan 23, 2013 at 12:44:49PM +0800, Miao Xie wrote: >>>>> No, we can't. The other tasks which flush the delalloc data may remove >>>>> the inode >>>>> from the delalloc list/splice list. If we release the lock, we will meet >>>>> the race >>>>> between list traversing and list_del(). >>>> >>>> OK, then please merge patch 1 and 4 so that we can backport 1 less patch >>>> at least. >>> >>> I don't think we should merge these two patch because they do two different >>> things - one >>> is bug fix, and the other is just a improvement, and this improvement >>> changes the logic >>> of the code and might be argumentative for some developers. So 2 patches is >>> better than one, >>> I think. >> >> Sorry, this is right only when patch 1 really fixes the problem Alex >> reported. >> >> But the fact is >> >> 1) patch 1 is not enough to fix the bug, it just fixes the OOM of >> allocating 'struct btrfs_delalloc_work' while the original OOM of allocating >> requests remains. We can still get the same inode over and over again >> and then stuck in btrfs_start_delalloc_inodes() because we 'goto again' to >> make sure we flush all inodes listed in fs_info->delalloc_inodes. >> >> 2) patch 4 fixes 1)'s problems by removing 'goto again'. >> >> Am I missing something? > > In fact, there are two different problems. > One is OOM bug. it is a serious problem and also is an regression, so we > should fix it > as soon as possible. > The other one is that we may fetch the same inode again and again if someone > write data > into it endlessly. This problem is not so urgent to deal with. and perhaps > some developers > think it is not a problem, we should flush that inode since there are dirty > pages in it. > So we need split it from the patch of the 1st problem. > > Thanks > Miao -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html