[PATCH] Assert that pages being written back are locked

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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));




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux