Anyone want to review this for me? On Tue, Oct 27, 2020 at 10:46:45PM +0000, Matthew Wilcox wrote: > From: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > > In write_cache_pages(), we rely on PageLock to prevent writeback from > starting on locked pages. I'm not sure if we document anywhere that pages > that we're starting writes on must be locked, but having an assertion > will make it clear to users that this is required. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index 3671568d433f..f83dd855594d 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -2774,6 +2774,8 @@ int __test_set_page_writeback(struct page *page, bool keep_write) > struct address_space *mapping = page_mapping(page); > int ret, access_ret; > > + VM_BUG_ON_PGFLAGS(!PageLocked(page), page); > + > lock_page_memcg(page); > if (mapping && mapping_use_writeback_tags(mapping)) { > XA_STATE(xas, &mapping->i_pages, page_index(page)); >