From mboxrd@z Thu Jan 1 00:00:00 1970 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 49A12C5B543 for ; Tue, 10 Jun 2025 06:46:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D67E36B0093; Tue, 10 Jun 2025 02:46:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D3EC26B0095; Tue, 10 Jun 2025 02:46:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C7C4D6B0096; Tue, 10 Jun 2025 02:46:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id AAA256B0093 for ; Tue, 10 Jun 2025 02:46:08 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 60D4F1017DA for ; Tue, 10 Jun 2025 06:46:08 +0000 (UTC) X-FDA: 83538556416.01.167D13C Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf07.hostedemail.com (Postfix) with ESMTP id C8D3140005 for ; Tue, 10 Jun 2025 06:46:06 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=CdpS+R+C; spf=none (imf07.hostedemail.com: domain of BATV+631296521f62fa6b3e9f+7961+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+631296521f62fa6b3e9f+7961+infradead.org+hch@bombadil.srs.infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=lst.de (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749537966; 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=sn/s3fAZliKtTivtfeghp0cpgan1a3qrk2PV1k+4Jqk=; b=0Oxeq7pysMiUH+YxYS/K2WjZ8qh8R/5HUcBr+GQl6kTQNGtZgtLTeqRBnJixhbxQGUFFA0 MOBQtGI7MbigAwZGE7uTfyQVAU884bjFCtqZb/dvZ1FrdwvOdunZ0+hlme/PYHg7qTj7Yu GlVUmtiykIinRxVP5h8nszXdO+WWTk8= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=CdpS+R+C; spf=none (imf07.hostedemail.com: domain of BATV+631296521f62fa6b3e9f+7961+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+631296521f62fa6b3e9f+7961+infradead.org+hch@bombadil.srs.infradead.org; dmarc=fail reason="No valid SPF, DKIM not aligned (relaxed)" header.from=lst.de (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1749537966; a=rsa-sha256; cv=none; b=bpNjBE8NS6JRgs5R3NCgfBq6oHFI89nLjMY1Gbrc2WjqwKLaf4m4cdNV96ArE406hVpWTK OZYnngax1QvAb5bfR6B8KRIPHMLy2OecTyGBoTVTRYj1XHQ3k7pk+fnn3koJkQ2CI7fchW z1buP3n9bV5fUTN18Ezj9sBtoXOCGmM= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; 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=sn/s3fAZliKtTivtfeghp0cpgan1a3qrk2PV1k+4Jqk=; b=CdpS+R+CjDH7gPYinXW4tGvKHd nnpC1KKznDZ7WaMe0k+7EOov/frASxjbMzTQ/M8r8FtoH6RTT74N4D5RlriHyGF78BrojcO4tspxJ Dk07mpaoVsbmtuaWBQK6dHiK2F3RXQmjab9qoHFdj2g/fPD0ebrhpRQJYNML73QgLnjJHpKX4xCxn kvwBR+lthD43R80W7QY6PWPcqYye1w0doQ+Tu4LITh7TXsQzTZ0Rmn2zs3u93o/fwWCWlTrTNNLwe jXi4JaRbri+6AoBKam2mReAvjf7frYKPw38T9N2eCTEzxTkLQzsusFGIvwu1ejp+SujdDNorefQfS QDiPEqug==; Received: from 2a02-8389-2341-5b80-d601-7564-c2e0-491c.cable.dynamic.v6.surfer.at ([2a02:8389:2341:5b80:d601:7564:c2e0:491c] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.98.2 #2 (Red Hat Linux)) id 1uOrsG-00000005s2V-1DAk; Tue, 10 Jun 2025 05:50:16 +0000 From: Christoph Hellwig To: Andrew Morton , Hugh Dickins , Johannes Weiner , Yosry Ahmed , Nhat Pham Cc: Matthew Wilcox , Chengming Zhou , Baolin Wang , linux-mm@kvack.org Subject: [PATCH 6/6] mm: remove the for_reclaim field from struct writeback_control Date: Tue, 10 Jun 2025 07:49:42 +0200 Message-ID: <20250610054959.2057526-7-hch@lst.de> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250610054959.2057526-1-hch@lst.de> References: <20250610054959.2057526-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspamd-Queue-Id: C8D3140005 X-Stat-Signature: qd9b5g6f6syhmatfaseoyyshmuk84jow X-Rspam-User: X-Rspamd-Server: rspam07 X-HE-Tag: 1749537966-898106 X-HE-Meta: U2FsdGVkX1+7Nke3ujyJ/WAweXmRPxM21Q9vVOoKxk2Ixgw8Qdu/C0OGwc94exJxICqbhMLpEcHwbua3ifg85b5qpl77mGqKEqo+/IFtTI2E7zUw00iDw63CHMrL0Ubv0yP/GDg6Kb2fIZ2zJKJtSN6zN2HftrH7S3QRXDpBFfHsvpCsQ4v1OKI4DqxvaBfRKjQf0q2l6GCvSoIVPdvIxFypfC0KI6Pqv0pKB4rcXDuOh8iJfAZa+hXNFRPoA/wsJRqmbTlWq8JpQupfo094Kmk6x/WUGnF9jiOX0DypXU9u5UNG6L4n5cwrR2V+RdHBIpXXxEUadM5rdccPi7H4E/IE7GUlgyJlNSuNbM0+atIvIizItmTWt/z9T2R4Bwml3Y/INyHO/u0FhIjQHg6mob8CLxWhMtZVYCa2cue6yZusU18UFDI/+QLTGVtkfG/sO1h08Q8mesp0g+qUa5IU4RXDIwZvr03q3kUDG46M75IWRuYR7q7T2bYBFZCsOSBokvxSgI8+hz9N17Inz98vbMZ1lwUmuc2fguqOxyYutfyO2JNqxZ7KFn4NL+XujUDZ3ra5raoqLJWaPBWV04AuC1sSyrhdsLkUUy7chZ/y0XpebGSwSHZX6GMe9D5rdIalJoCIFq+20UGBg7ZVHkxkhs23o/0Vqop/M0F8ukPRiOfzpu6AkliIi4X70FqdYQxMsrze3TOO1gPqDAlP99NdkgpxHUNOuQswHei8Kd4EYW6GDOrhevZuakbGTXsUdFcrlZiBx1DSzTXD2tz8ilvR4at9qJVmdzQinSrCvYKNenpX7q60Tz2NQDkx7AiuNIn6Pjpb7HTbu+Vk6RRJVAEA+/e4pKgJ9XhWN/3jJkOPtoyT/6VH8gW3auJkaYyX+orn/ZnQgwgAV72R8kpllVQDGXoMgTLuD/Xywko9nUmOmQEJswMLsNUARdNnRN24rGyRATJLcOQQ2dDQ6LMBYOh 7Fy+NXj1 Uywu5MWtzzK3PDS/aos8/bae7bsiBjsBogHrLjKEqyPsggt4AblDSe7vCZXZjNKLLuXaClQ1sWHQQCYPn2HE9FKPrXeqr5tz1Y1eTklEPdUQ2YZUHH6SefKFgZ1+OULgZi8lg708GoQGzO0nxgv5tR+jrT3FtMgPgbA8oybZL8XFgErNAntmcQUHaugSqmtjvkAr2WSaJ/zXpNSCnU7Q/ZPbf4i5f2UNVJhifKcB9BuUexRAbTOFYg0JV3AZxShhdCFLAD+DtSeiKyrab1ozAD+VsFtUD5JOrgds0ogvSh8bH4v+1dLo3pCYb8ZNkh1/gpYSGJa4TorLKaV1REr1cAY/Jlfac50IHtMG7CTK/n1tpj/PBD+eadHQyf2V02phNpuXBWodAWa4nLd5r0TMMFijiChj9n+QwrDp4cvVCeVzoAvKYnhZzUs3Zy9A9L8xtGPNMYsvvkIWLbDyxrnwCiUSqT7XvY3WbfpcYnGsIgqZlfLfwyxSdGqW4SeTkZxiuP5vfj7fusF4mN8qLpM7kzmDJxgYOA1XfG4HIFE0yRDctMaDqonCBYvp0sSFiH2/eDx31Z1WL1HBUux0LA1HOFWvQhLIcd79UVc5G 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: This field is now only set to one in the i915 gem code that only calls writeback_iter on it, which ignores the flag. All other checks are thuse dead code and the field can be removed. Signed-off-by: Christoph Hellwig --- drivers/gpu/drm/i915/gem/i915_gem_shmem.c | 1 - fs/fuse/file.c | 11 ----------- fs/nfs/write.c | 2 +- include/linux/writeback.h | 1 - include/trace/events/btrfs.h | 7 ++----- include/trace/events/writeback.h | 8 ++------ 6 files changed, 5 insertions(+), 25 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c index 24d8daa4fdb3..f263615f6ece 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_shmem.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_shmem.c @@ -302,7 +302,6 @@ void __shmem_writeback(size_t size, struct address_space *mapping) .nr_to_write = SWAP_CLUSTER_MAX, .range_start = 0, .range_end = LLONG_MAX, - .for_reclaim = 1, }; struct folio *folio = NULL; int error = 0; diff --git a/fs/fuse/file.c b/fs/fuse/file.c index f102afc03359..2ad5665bf81d 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -1928,17 +1928,6 @@ int fuse_write_inode(struct inode *inode, struct writeback_control *wbc) struct fuse_file *ff; int err; - /* - * Inode is always written before the last reference is dropped and - * hence this should not be reached from reclaim. - * - * Writing back the inode from reclaim can deadlock if the request - * processing itself needs an allocation. Allocations triggering - * reclaim while serving a request can't be prevented, because it can - * involve any number of unrelated userspace processes. - */ - WARN_ON(wbc->for_reclaim); - ff = __fuse_write_file_get(fi); err = fuse_flush_times(inode, ff); if (ff) diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 374fc6b34c79..cf1d720b8251 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c @@ -720,7 +720,7 @@ int nfs_writepages(struct address_space *mapping, struct writeback_control *wbc) nfs_inc_stats(inode, NFSIOS_VFSWRITEPAGES); if (!(mntflags & NFS_MOUNT_WRITE_EAGER) || wbc->for_kupdate || - wbc->for_background || wbc->for_sync || wbc->for_reclaim) { + wbc->for_background || wbc->for_sync) { ioc = nfs_io_completion_alloc(GFP_KERNEL); if (ioc) nfs_io_completion_init(ioc, nfs_io_completion_commit, diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 9e960f2faf79..a2848d731a46 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -59,7 +59,6 @@ struct writeback_control { unsigned for_kupdate:1; /* A kupdate writeback */ unsigned for_background:1; /* A background writeback */ unsigned tagged_writepages:1; /* tag-and-write to avoid livelock */ - unsigned for_reclaim:1; /* Invoked from the page allocator */ unsigned range_cyclic:1; /* range_start is cyclic */ unsigned for_sync:1; /* sync(2) WB_SYNC_ALL writeback */ unsigned unpinned_netfs_wb:1; /* Cleared I_PINNING_NETFS_WB */ diff --git a/include/trace/events/btrfs.h b/include/trace/events/btrfs.h index bebc252db865..0adc40f5e72b 100644 --- a/include/trace/events/btrfs.h +++ b/include/trace/events/btrfs.h @@ -686,7 +686,6 @@ DECLARE_EVENT_CLASS(btrfs__writepage, __field( loff_t, range_start ) __field( loff_t, range_end ) __field( char, for_kupdate ) - __field( char, for_reclaim ) __field( char, range_cyclic ) __field( unsigned long, writeback_index ) __field( u64, root_objectid ) @@ -700,7 +699,6 @@ DECLARE_EVENT_CLASS(btrfs__writepage, __entry->range_start = wbc->range_start; __entry->range_end = wbc->range_end; __entry->for_kupdate = wbc->for_kupdate; - __entry->for_reclaim = wbc->for_reclaim; __entry->range_cyclic = wbc->range_cyclic; __entry->writeback_index = inode->i_mapping->writeback_index; __entry->root_objectid = btrfs_root_id(BTRFS_I(inode)->root); @@ -709,13 +707,12 @@ DECLARE_EVENT_CLASS(btrfs__writepage, TP_printk_btrfs("root=%llu(%s) ino=%llu page_index=%lu " "nr_to_write=%ld pages_skipped=%ld range_start=%llu " "range_end=%llu for_kupdate=%d " - "for_reclaim=%d range_cyclic=%d writeback_index=%lu", + "range_cyclic=%d writeback_index=%lu", show_root_type(__entry->root_objectid), __entry->ino, __entry->index, __entry->nr_to_write, __entry->pages_skipped, __entry->range_start, __entry->range_end, - __entry->for_kupdate, - __entry->for_reclaim, __entry->range_cyclic, + __entry->for_kupdate, __entry->range_cyclic, __entry->writeback_index) ); diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index 0ff388131fc9..1e23919c0da9 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h @@ -459,7 +459,6 @@ DECLARE_EVENT_CLASS(wbc_class, __field(int, sync_mode) __field(int, for_kupdate) __field(int, for_background) - __field(int, for_reclaim) __field(int, range_cyclic) __field(long, range_start) __field(long, range_end) @@ -473,23 +472,20 @@ DECLARE_EVENT_CLASS(wbc_class, __entry->sync_mode = wbc->sync_mode; __entry->for_kupdate = wbc->for_kupdate; __entry->for_background = wbc->for_background; - __entry->for_reclaim = wbc->for_reclaim; __entry->range_cyclic = wbc->range_cyclic; __entry->range_start = (long)wbc->range_start; __entry->range_end = (long)wbc->range_end; __entry->cgroup_ino = __trace_wbc_assign_cgroup(wbc); ), - TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d " - "bgrd=%d reclm=%d cyclic=%d " - "start=0x%lx end=0x%lx cgroup_ino=%lu", + TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d bgrd=%d " + "cyclic=%d start=0x%lx end=0x%lx cgroup_ino=%lu", __entry->name, __entry->nr_to_write, __entry->pages_skipped, __entry->sync_mode, __entry->for_kupdate, __entry->for_background, - __entry->for_reclaim, __entry->range_cyclic, __entry->range_start, __entry->range_end, -- 2.47.2