On 10/02/2018 04:26 AM, Kirill A. Shutemov wrote: >> + page = follow_page_mask(vma, address, foll_flags, &ctx); >> + if (ctx.pgmap) >> + put_dev_pagemap(ctx.pgmap); >> + return page; >> } > Do we still want to keep the function as inline? I don't think so. > Let's move it into mm/gup.c and make struct follow_page_context private to > the file. Yeah, and let's have a put_follow_page_context() that does the put_dev_pagemap() rather than spreading that if() to each call site.