From patchwork Fri Mar 7 13:54:06 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Matthew Wilcox X-Patchwork-Id: 14006514 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EAEA0C28B27 for ; Fri, 7 Mar 2025 13:54:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DA1C06B0089; Fri, 7 Mar 2025 08:54:19 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id C8ACA280001; Fri, 7 Mar 2025 08:54:19 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A2DD6B0083; Fri, 7 Mar 2025 08:54:19 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 2BC7B6B008A for ; Fri, 7 Mar 2025 08:54:19 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1C4D1B5553 for ; Fri, 7 Mar 2025 13:54:20 +0000 (UTC) X-FDA: 83194899480.06.4F5AA5F Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf27.hostedemail.com (Postfix) with ESMTP id D61FE4000B for ; Fri, 7 Mar 2025 13:54:17 +0000 (UTC) Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="NXceUjf/"; spf=none (imf27.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741355658; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=mvaOn1iNfnHJjc4gSgVD8D2wLxi5A95q8CNsEb5mKOk=; b=24g0mFPhKh8rEhv5rk5enKGIi6elcTB1XiVJGnyHR6WfE6qOMhqXV2UUU3ep/mBRBM/OfN EPLbkIjXfr3sVfaFnzl2OaVLsdUgFtyWdrzXZRbCSup7wNLA3zp69zQ2t5Gw5GM+zhnhJX Au1bdJ9uFJbZu7cJ0t3mhPPi8xyLuSg= ARC-Authentication-Results: i=1; imf27.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="NXceUjf/"; spf=none (imf27.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741355658; a=rsa-sha256; cv=none; b=uBs+Q7qw60jNBzH0fhzz42mjsTOo2wZKZVcl0VdJ4pAbi4zKk2ZlDAuEVnJLzGlJwIoOp0 k0+qxCtxywbrDfAo9SGcnUqaGEvOVQDc1DEuMF+C7j+p62RUckCF9WkpLpkh+9r9gquhOQ PTD4z8yail9aAs7VnPrwDbNAyQnsdqQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:MIME-Version: References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To: Content-Type:Content-ID:Content-Description; bh=mvaOn1iNfnHJjc4gSgVD8D2wLxi5A95q8CNsEb5mKOk=; b=NXceUjf/rN/nE14KGNhSPpVAVh KHf0pdp8XBGLyZVSxh21bmLjKks7mhrikiMkVY1Slftde2kxARF1sJEHTLzOrFGSlukw5i9KQ704K HpJO7LPaZK2IlUHtYN/tQhAJgrAyzc+WxQUajwcgShyq/1aIaCEAJfTAuV7yD4h+h7z+78IzYmkts iIs9QJxhHbfpeAiB7XWLbzfH09Dci81NPYhBAXhqSO0epSfc6DyK+OEyVmuTyMkQAG9MIm2+gXgfC tVBM5KM5M5hTdxnpnhCqQe7XILBlgcx5L1oqVTA5k1Lytpp0twq+bYWonIYYS3fA09Dv730/UJId5 QK1+O/Ig==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tqY9Y-0000000CXGM-1NhP; Fri, 07 Mar 2025 13:54:16 +0000 From: "Matthew Wilcox (Oracle)" To: linux-fsdevel@vger.kernel.org Cc: "Matthew Wilcox (Oracle)" , linux-mm@kvack.org, intel-gfx@lists.freedesktop.org Subject: [PATCH 06/11] migrate: Remove call to ->writepage Date: Fri, 7 Mar 2025 13:54:06 +0000 Message-ID: <20250307135414.2987755-7-willy@infradead.org> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250307135414.2987755-1-willy@infradead.org> References: <20250307135414.2987755-1-willy@infradead.org> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Queue-Id: D61FE4000B X-Rspamd-Server: rspam09 X-Stat-Signature: nsr5wy9e1bbotj5ztgtq7i9dyr44wcgi X-HE-Tag: 1741355657-961410 X-HE-Meta: U2FsdGVkX18BZofr5Hbxz5gM8vIDEpOCi9n673VSfmLOalMQ5pvJA+fUQP7OI+SCaTRHaNgVFGFHI1xM/nk1CHgE9EZU5MlO8LSwB1IBMQ0Li2kA4YPlTm3wfO4XPmgwCle6sFC97Wl5ShKfdoeP8Ay5kltjuh1wq7Dgr3b930ahGhK9q5dgrrtHAT4HcdUSKj4t2o4D/q0/3Lsqw0dR5kjy5k79PiQCUTHNx0gkxlkY2seraGtgIFNjy65ZCUr+y6cTmX2U8tavUvJn6kI/6kqzqJn7oH0K8rykXCLhifI72fGSlxqWR0EdngCpF0v+9VfIYuN2qt/lHk00jPLgGk3Mzh2Q6/GFEGl1OOXq5KphhPqQqTc8/Ea8WcoCL17I24BUC1APgD3ZMkVi+CG1QiZCeMPkSvwbJwCGeSEPBBDYogoQhTmWDDRwV8WqSZl2FBVZUUv/8RpF70NFmOANWAY5q7C766LKKeGxW9/AtCBqjOgV6vkcK90oxF8vi0KPyqSvUCSmZWodDI76rRuocl2L6HVyDRAfyg/6vTyb9mhFE4V7EEqSqOWr4BzPCajE96ow3FGBTq0DaAPhW1WSGRpCmkL46ptpaJl14V+xM1DzGIprQfL6owcVC9w3STUx9Aw9t6XAQF5URNm4vPoWfcVYBESQWugVEobzjRuekUv9dG50f55faS6KalE7oMN33TcsEsP4RTYBoRnVkIKZQP5WF/UkRIk6rSUJTenDvF2Gd9Qq9Jtr9No89qZT81heG/F9aSvBEpeUGzKSLMpZ3G9NpkAeRAzXYG4AHHVMpj0ZeYLxhT6WKyiaLb7o/XhSvJ/xq9nx0bnH1kZ1myEFTu//x+yCmnY2/9rvuWXel8V9xRX0bvoBT2JrZ0SeRZUltL73gMjRH7J9dtO24g4IIiC3Klr7YXy2O1S12qk08rZWAzQRj0MVA9/+2glmJS1FuR3TqJAy1kxGWWmCFYl sn5FL0fT MD3gSfoOPmfUPKlJ4co/YLxSsjZG6Ncq3GfQAgZs26OpiP7Wt3fOrmVCPYF0ikxpGtlRDPygPPkd5Odl3eVOjrL1kJlDcdAyUgy6sWcnRmU/cz6jnjifD8AfSfNivUyPdsb1aSqFY2VJZYdH0I1AEgH7vhr9O9dUgIUV5tFm8liGlU0odalPgb0DvhnzDYBwdBpmoUDdyoYwt2ZB+49hV8CvfRk4j5dbWls5rhNch0SOLbvo= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The writepage callback is going away; filesystems must implement migrate_folio or else dirty folios will not be migratable. Signed-off-by: Matthew Wilcox (Oracle) --- mm/migrate.c | 57 ++++------------------------------------------------ 1 file changed, 4 insertions(+), 53 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index c0adea67cd62..3d1d9d49fb8e 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -944,67 +944,18 @@ int filemap_migrate_folio(struct address_space *mapping, } EXPORT_SYMBOL_GPL(filemap_migrate_folio); -/* - * Writeback a folio to clean the dirty state - */ -static int writeout(struct address_space *mapping, struct folio *folio) -{ - struct writeback_control wbc = { - .sync_mode = WB_SYNC_NONE, - .nr_to_write = 1, - .range_start = 0, - .range_end = LLONG_MAX, - .for_reclaim = 1 - }; - int rc; - - if (!mapping->a_ops->writepage) - /* No write method for the address space */ - return -EINVAL; - - if (!folio_clear_dirty_for_io(folio)) - /* Someone else already triggered a write */ - return -EAGAIN; - - /* - * A dirty folio may imply that the underlying filesystem has - * the folio on some queue. So the folio must be clean for - * migration. Writeout may mean we lose the lock and the - * folio state is no longer what we checked for earlier. - * At this point we know that the migration attempt cannot - * be successful. - */ - remove_migration_ptes(folio, folio, 0); - - rc = mapping->a_ops->writepage(&folio->page, &wbc); - - if (rc != AOP_WRITEPAGE_ACTIVATE) - /* unlocked. Relock */ - folio_lock(folio); - - return (rc < 0) ? -EIO : -EAGAIN; -} - /* * Default handling if a filesystem does not provide a migration function. */ static int fallback_migrate_folio(struct address_space *mapping, struct folio *dst, struct folio *src, enum migrate_mode mode) { - if (folio_test_dirty(src)) { - /* Only writeback folios in full synchronous migration */ - switch (mode) { - case MIGRATE_SYNC: - break; - default: - return -EBUSY; - } - return writeout(mapping, src); - } + if (folio_test_dirty(src)) + return -EBUSY; /* - * Buffers may be managed in a filesystem specific way. - * We must have no buffers or drop them. + * Filesystem may have private data at folio->private that we + * can't migrate automatically. */ if (!filemap_release_folio(src, GFP_KERNEL)) return mode == MIGRATE_SYNC ? -EAGAIN : -EBUSY;