On Fri, Dec 21, 2018 at 09:56:25AM +0100, 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.
This looks like a reasonable resolution to me:
http://lkml.kernel.org/r/20181221093919.GA2337@lst.de
But let's wait the inclusion (or objection).