From patchwork Tue Oct 27 22:46:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 11862057 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 63BCD6A2 for ; Tue, 27 Oct 2020 22:46:54 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 9DDEB221F7 for ; Tue, 27 Oct 2020 22:46:53 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=infradead.org header.i=@infradead.org header.b="WWNMnfS2" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9DDEB221F7 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=infradead.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id BEC0D6B005C; Tue, 27 Oct 2020 18:46:52 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id B9CD26B005D; Tue, 27 Oct 2020 18:46:52 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AB2EB6B0062; Tue, 27 Oct 2020 18:46:52 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0027.hostedemail.com [216.40.44.27]) by kanga.kvack.org (Postfix) with ESMTP id 787426B005C for ; Tue, 27 Oct 2020 18:46:52 -0400 (EDT) Received: from smtpin11.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 011BF1EE6 for ; Tue, 27 Oct 2020 22:46:52 +0000 (UTC) X-FDA: 77419191864.11.cup66_2712f5d2727f Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin11.hostedemail.com (Postfix) with ESMTP id E21FC180F8B81 for ; Tue, 27 Oct 2020 22:46:51 +0000 (UTC) X-Spam-Summary: 1,0,0,3338c9e129345d85,d41d8cd98f00b204,willy@infradead.org,,RULES_HIT:41:355:379:800:960:973:988:989:1260:1277:1312:1313:1314:1345:1381:1437:1516:1518:1519:1534:1540:1593:1594:1595:1596:1711:1714:1730:1747:1777:1792:2393:2559:2562:2693:3138:3139:3140:3141:3142:3351:3867:3870:3871:3872:3874:4321:5007:6261:6653:7576:8957:10004:10400:11026:11473:11658:11914:12043:12296:12297:12438:12555:12663:12679:13069:13141:13230:13311:13357:13439:13895:14096:14097:14181:14394:14721:21080:21451:21627:30054,0,RBL:90.155.50.34:@infradead.org:.lbl8.mailshell.net-64.201.201.201 62.8.15.100;04ygnoje6w1sam4psz4o6xx1wqxcnycb8mq38rj3tb7gpg3uoeppgt5argxr6dn.9y7i615cstbgknjw7baqhwm4ohw74x7z7wsoxy4wdtjtzifpmb9d3tumcbu3nmm.r-lbl8.mailshell.net-223.238.255.100,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:fn,MSBL:0,DNSBL:neutral,Custom_rules:0:0:0,LFtime:69,LUA_SUMMARY:none X-HE-Tag: cup66_2712f5d2727f X-Filterd-Recvd-Size: 2271 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf05.hostedemail.com (Postfix) with ESMTP for ; Tue, 27 Oct 2020 22:46:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Type:MIME-Version:Message-ID: Subject:To:From:Date:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=5AYNYoQ0zRSnMHsFB1kkOHjV/PFAWcKQZnsJmEGmvr0=; b=WWNMnfS227dMHg7+NtFXGRHnJz KBdWEadAqGXr4IDW57kRZL3C6RdEut3+d/bo56AMLwTQugAvn/fME+pVP1uVulFjhG45i6dj3RqgO lZSkhCr0q6SNiVc2w/CKCWjqN+Py1TG6kKW099nJztZ57261nhEXuX7VghbO695qUkZS7hFfajKnq 7W8uYI98e4XF4RymbVi9BOH14FTtG7YNargYDiYfP+ucufqRjfjDn3VmKbITthUVSkP+A2JdJJ1JG /rlbUMpsitPhFXcGMClLVDbP+nOknZ93qnijEOAE/rsKrElklAkcNX47nYA1PlKIC8B8a5xIfiY6A cihgzmqg==; Received: from willy by casper.infradead.org with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1kXXjp-00069o-MS for linux-mm@kvack.org; Tue, 27 Oct 2020 22:46:45 +0000 Date: Tue, 27 Oct 2020 22:46:45 +0000 From: Matthew Wilcox To: linux-mm@kvack.org Subject: [PATCH] Assert that pages being written back are locked Message-ID: <20201027224645.GY20115@casper.infradead.org> MIME-Version: 1.0 Content-Disposition: inline X-Bogosity: Ham, tests=bogofilter, spamicity=0.000017, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: Matthew Wilcox (Oracle) 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) Reviewed-by: William Kucharski 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));