Re: [PATCH] ubifs: Get/put page when changing PG_private

zhangjun
2018-12-25T02:42:48Z

On 2018/12/21 下午4:56, Richard Weinberger wrote:
> Am Samstag, 15. Dezember 2018, 16:01:30 CET schrieb Richard Weinberger:
>> The page migration code assumes that a page with PG_private
>> set has its page count elevated by 1.
>> UBIFS never did this and therefore the migration code was unable
>> to migrate some pages owned by UBIFS.
>> The lead to situations where the CMA memory allocator failed to
>> allocate memory.
>>
>> Fix this by using get/put_page when changing PG_private.
>>
>> Cc: <stable@vger.kernel.org>
>> Cc: zhangjun <openzhangj@gmail.com>
>> Fixes: 4ac1c17b2044 ("UBIFS: Implement ->migratepage()")
>> Reported-by: zhangjun <openzhangj@gmail.com>
>> Signed-off-by: Richard Weinberger <richard@nod.at>
> FYI, on the XFS side a similar change caused a regression.
> https://marc.info/?l=linux-fsdevel&m=154530861202448&w=2
>
> Until this regression is not fully understood, including the implications
> for UBIFS, I'll not merge this patch.
>
> Thanks,
> //richard
>
>
Hello,richard

Before fully understanding this regression, in order to fix the bug of
cma_alloc(),
submit a conservative patch that modifies count in iomap_migrate_page().
Can you consider merging first?

https://marc.info/?l=linux-kernel&m=154473132332661&w=2

Thanks
//zhangjun