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 E9B96C46467 for ; Mon, 2 Jan 2023 12:16:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7FFDE8E0003; Mon, 2 Jan 2023 07:16:26 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 7B0D88E0001; Mon, 2 Jan 2023 07:16:26 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6782D8E0003; Mon, 2 Jan 2023 07:16:26 -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 5744A8E0001 for ; Mon, 2 Jan 2023 07:16:26 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 3014AC0925 for ; Mon, 2 Jan 2023 12:16:26 +0000 (UTC) X-FDA: 80309756772.21.55324A5 Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by imf04.hostedemail.com (Postfix) with ESMTP id 5A8A340017 for ; Mon, 2 Jan 2023 12:16:24 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=Z2NfHHv8; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="4H/d29qL"; spf=pass (imf04.hostedemail.com: domain of jack@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=jack@suse.cz; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672661784; 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-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lciet8dBeNbENoER71MTYvm/0HjOnWjldfsc9ARRDjA=; b=IusyeZ0kGcoZtRaEwdD4rEAp3riEtqVReaTnKAq8UiLOTdIxpByJfU8jtGoZY2CVQhJs8c /vJeTRnVtVBYalEZLjNKEllSD33zMtxUAJ0rFhGQyCzpEyMgq8JHqfSJiib43JyNPAN6bQ R3EDCdXRI0uq8YUcPs8ICiIHWH6BIUc= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=Z2NfHHv8; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b="4H/d29qL"; spf=pass (imf04.hostedemail.com: domain of jack@suse.cz designates 195.135.220.28 as permitted sender) smtp.mailfrom=jack@suse.cz; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672661784; a=rsa-sha256; cv=none; b=SHIwe7H9ZnB/8rOrHPzNGFuWmGK6XR9/SayMP05RJ2q0JHJZ9OcwbGZtCLRA5BfVockaNZ K4ezMDHc7l3BLSp0kQWCQy95Nm75lPs0ky436IsZnLj3AaLFLkeTcz5m2+Y1gQoI1b6jjl 2sfjYhM37u+HydQUDQ58RMVAjNYoHMI= Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id 25A9E340CF; Mon, 2 Jan 2023 12:16:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1672661783; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lciet8dBeNbENoER71MTYvm/0HjOnWjldfsc9ARRDjA=; b=Z2NfHHv8LQE8LGsksDyHiOW7ia0MxN09WJmswZ/kTFOS9aQr05c15gzVV/IvmXU24Rwb14 KGNk1inL0Kpw9jyq9NoyxsV2RaNf5qc5JQNdH0gSmdAdTCyaK0ev9XAYtOofDkyWz/bwCW Wp3j6L60XelvZ9arl4vmM28F0XQJ8wQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1672661783; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=lciet8dBeNbENoER71MTYvm/0HjOnWjldfsc9ARRDjA=; b=4H/d29qLIAm2FxBDK6Y9UKKprqkrOYEYiJO0Koqjk75JTdj9yWFNV8XncwVRN6n+qczRl2 2zu2+S4+7i/16qAA== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id 09691139C8; Mon, 2 Jan 2023 12:16:23 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 5lpGAhfLsmMcCwAAMHmgww (envelope-from ); Mon, 02 Jan 2023 12:16:23 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id 2C671A073E; Mon, 2 Jan 2023 13:16:22 +0100 (CET) Date: Mon, 2 Jan 2023 13:16:22 +0100 From: Jan Kara To: Christoph Hellwig Cc: Andrew Morton , Theodore Ts'o , Jan Kara , Konstantin Komarov , Mark Fasheh , Joel Becker , Joseph Qi , "Matthew Wilcox (Oracle)" , linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, ntfs3@lists.linux.dev, ocfs2-devel@oss.oracle.com, linux-mm@kvack.org Subject: Re: [PATCH 6/6] mm: remove generic_writepages Message-ID: <20230102121622.4xq4mn6gvqa2ksjx@quack3> References: <20221229161031.391878-1-hch@lst.de> <20221229161031.391878-7-hch@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221229161031.391878-7-hch@lst.de> X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 5A8A340017 X-Stat-Signature: kdhfxx5siabfidkyqye9cph5fzt3bo6w X-HE-Tag: 1672661784-576287 X-HE-Meta: U2FsdGVkX1+/hxc/9mRsVmcEIGd0HgkT/5xsEKV8p69jBbqIFwcVCbGbvhTjNrsOmw70rTQLRFazWF3ML4/tUkrNu7KWP2fVnTwecIgCdeZ1dcjzxyGgFnoKKhKSuxjPW4juowMZaTVu/mb0N4yWqH2NM6owcXTG4poafWZjtQwi69ZVkdJWrKxp4hvBMFTITmlB06AiC76auOam9hX9BEYgid7sfrXxEkF/VkfmptLelNBa5h/ZhToX4AlNH2gX/5n26XQn5ikVF1GiVnkAInZ/uMbWNcNr9yH8rIBJ4fhcmtiFm5iHmerTmSlQMOvAr6yO3/6ZY+u3qdBri4x3YyR9wller8w8us6HdRcVAcIUi44zyGAKUm2PJB6KevchzOQ5qeW1BiI5r32tnzyhbQTcvjCPTmtoFUAPMPBtEvKlESNEubHKJdQHm7K3pfwGhlKj4gwUlGQQnPIa9m9quTM7NnogDpBeQ6hWPj0/MVHt+PGiWjkRr2T8i5qFEpcAA8lhxHcvBoHAFQnBJa0FCH6555RwwwG/RKiP+SO39vAySg1yRAHF3uTgnkBdBFtWP+khLPcUm1fLaCUrkPdGiWKACUpG5XIoGmkHoVSOsxp86iphdDRlvqrGb2xMFheyEwZDhRYV2mqKH0Wt2hdIDM/bpo2FQigYj55LNFP9m8pkoKHWQByagCyk90TWD4M1zc5vw7ysJmI3kVU79Leb0loHJomne3ncJFyav9JmvKa1XbeX5HCSdasCvZ6HsW9sSE7WTGxa2DjakoKs2eJSCRB6nTKxL/S6JAO4sUKVWN9gylvzUcGoiGk0LCd3a8wmTdB7OyR9ByVCn14aqADM/KBCqDNCJpdWBrV9npY8emhi8T1eXb0vkVBgy/UcUDfDTce8LwU/MSmtyjBFfyi/Sh54stusav6YkHv7OgTUFB42/uW3dYJVgLNhpIEPdqBZdRBXgpAZQBI= 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: On Thu 29-12-22 06:10:31, Christoph Hellwig wrote: > Now that all external callers are gone, just fold it into do_writepages. > > Signed-off-by: Christoph Hellwig Looks good to me. Feel free to add: Reviewed-by: Jan Kara Honza > --- > include/linux/writeback.h | 2 -- > mm/page-writeback.c | 53 +++++++++++---------------------------- > 2 files changed, 15 insertions(+), 40 deletions(-) > > diff --git a/include/linux/writeback.h b/include/linux/writeback.h > index 06f9291b6fd512..2554b71765e9d0 100644 > --- a/include/linux/writeback.h > +++ b/include/linux/writeback.h > @@ -369,8 +369,6 @@ bool wb_over_bg_thresh(struct bdi_writeback *wb); > typedef int (*writepage_t)(struct page *page, struct writeback_control *wbc, > void *data); > > -int generic_writepages(struct address_space *mapping, > - struct writeback_control *wbc); > void tag_pages_for_writeback(struct address_space *mapping, > pgoff_t start, pgoff_t end); > int write_cache_pages(struct address_space *mapping, > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index ad608ef2a24365..dfeeceebba0ae0 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -2526,12 +2526,8 @@ int write_cache_pages(struct address_space *mapping, > } > EXPORT_SYMBOL(write_cache_pages); > > -/* > - * Function used by generic_writepages to call the real writepage > - * function and set the mapping flags on error > - */ > -static int __writepage(struct page *page, struct writeback_control *wbc, > - void *data) > +static int writepage_cb(struct page *page, struct writeback_control *wbc, > + void *data) > { > struct address_space *mapping = data; > int ret = mapping->a_ops->writepage(page, wbc); > @@ -2539,34 +2535,6 @@ static int __writepage(struct page *page, struct writeback_control *wbc, > return ret; > } > > -/** > - * generic_writepages - walk the list of dirty pages of the given address space and writepage() all of them. > - * @mapping: address space structure to write > - * @wbc: subtract the number of written pages from *@wbc->nr_to_write > - * > - * This is a library function, which implements the writepages() > - * address_space_operation. > - * > - * Return: %0 on success, negative error code otherwise > - */ > -int generic_writepages(struct address_space *mapping, > - struct writeback_control *wbc) > -{ > - struct blk_plug plug; > - int ret; > - > - /* deal with chardevs and other special file */ > - if (!mapping->a_ops->writepage) > - return 0; > - > - blk_start_plug(&plug); > - ret = write_cache_pages(mapping, wbc, __writepage, mapping); > - blk_finish_plug(&plug); > - return ret; > -} > - > -EXPORT_SYMBOL(generic_writepages); > - > int do_writepages(struct address_space *mapping, struct writeback_control *wbc) > { > int ret; > @@ -2577,11 +2545,20 @@ int do_writepages(struct address_space *mapping, struct writeback_control *wbc) > wb = inode_to_wb_wbc(mapping->host, wbc); > wb_bandwidth_estimate_start(wb); > while (1) { > - if (mapping->a_ops->writepages) > + if (mapping->a_ops->writepages) { > ret = mapping->a_ops->writepages(mapping, wbc); > - else > - ret = generic_writepages(mapping, wbc); > - if ((ret != -ENOMEM) || (wbc->sync_mode != WB_SYNC_ALL)) > + } else if (mapping->a_ops->writepage) { > + struct blk_plug plug; > + > + blk_start_plug(&plug); > + ret = write_cache_pages(mapping, wbc, writepage_cb, > + mapping); > + blk_finish_plug(&plug); > + } else { > + /* deal with chardevs and other special files */ > + ret = 0; > + } > + if (ret != -ENOMEM || wbc->sync_mode != WB_SYNC_ALL) > break; > > /* > -- > 2.35.1 > -- Jan Kara SUSE Labs, CR