On Sun, 28 Apr 2019 23:05:38 +0200 Michal Hocko <mhocko@xxxxxxxx> wrote: > On Fri 26-04-19 11:25:42, Andrew Morton wrote: > > On Fri, 26 Apr 2019 18:26:42 +0800 Yafang Shao <laoar.shao@xxxxxxxxx> wrote: > [...] > > > +/* > > > + * Wait for a page to complete writeback > > > + */ > > > +void wait_on_page_writeback(struct page *page) > > > +{ > > > + if (PageWriteback(page)) { > > > + trace_wait_on_page_writeback(page, page_mapping(page)); > > > + wait_on_page_bit(page, PG_writeback); > > > + } > > > +} > > > +EXPORT_SYMBOL_GPL(wait_on_page_writeback); > > > > But this is a stealth change to the wait_on_page_writeback() licensing. > > Why do we have to put that out of line in the first place? Seems like a good thing to do from a size and icache-footprint POV. wait_on_page_writeback() has a ton of callsites and the allmodconfig out-of-line version is around 600 bytes of code (gack). > Btw. wait_on_page_bit is EXPORT_SYMBOL... OK, I'll leave wait_on_page_writeback() as EXPROT_SYMBOL().