Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1965289ybh; Fri, 24 Jul 2020 00:34:52 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxCb+rZRskSfjMrs/7zO1RBZN6dt0RISWojtISuOFi8MMZ/IhljXZ2DC1YCmrXf4gfz2xKn X-Received: by 2002:a17:906:6442:: with SMTP id l2mr3977629ejn.383.1595576092200; Fri, 24 Jul 2020 00:34:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595576092; cv=none; d=google.com; s=arc-20160816; b=BdBbH/KZ9F1uwO1RLhD7zpNgomEaTrj0w/L1Xi1WZihu4VkB6XmY1K8IEhm9kxAMjy FOpDmplF6dN3VNynhjvt0gY55wbNO+hBFwEPziN8F+KRYz7mCAlBP8ZWxfpAUw7Okun6 jf6rZpC1/Sw01MBr5fBBfUuZYgk/dao+8qnBOaJhzkS7yNF3D1+bE1UONS0zZjHValP0 IybptgGJtdt4Vnf7yo/36W4kQ+oPfiPbbxXmbl6q0bjcIJs8kX2jRRJylC2lvRbwNxof bcq24wGtgQdiTU8Rnt/weW1YQ0y800Tqb2kRM4nH6NjcKHDwkGIV2sndBWSbwHW80TUT HYZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=Ho/bGRY9X7egSzlAdmNPDZqSIrHRov0jTdazhq1mANU=; b=Mvw2PAvGugHKx6s2HQWNVenrOzzhIWZl2lKXoyx5/oang+AaHgm6vrtz2A7SKMQn9f mbAluMcwp8Mjf4QdAO0mXTFvRH+a+UaTcTE6h31PQIdOuFOSrXRnh18Ih6yJC+ONXSiW GvHJf7ZCIM6cQdXfjxUTCjyZLCu6D6lAwxO1dm7sR8/9fzfP3twz4isIZk1X6U22yi5B Q2H5RcLBIOLVKZS1tlUaMGTTJ8N5kTVkTmCnqFTUTIKlHsUuZYHrIXihCo2rSoDtGtN0 xNeJum60ct8I1ktZFFJXBmUoEoXXy127Oo3yi7LrHeXdLIwoqRBx52hRA8cksXYSRFQm VESA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=AdX3eczY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id bz8si88991ejc.744.2020.07.24.00.34.30; Fri, 24 Jul 2020 00:34:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=AdX3eczY; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726998AbgGXHeB (ORCPT + 99 others); Fri, 24 Jul 2020 03:34:01 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726970AbgGXHdy (ORCPT ); Fri, 24 Jul 2020 03:33:54 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4AA33C0619E4; Fri, 24 Jul 2020 00:33:54 -0700 (PDT) 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=Ho/bGRY9X7egSzlAdmNPDZqSIrHRov0jTdazhq1mANU=; b=AdX3eczY4e9pe/Zrk+EWNsFpgX 8AA75wvAEUqoOcuu3ixqAiCefHIFOaFdrAJLu5FpCHvlnfVQj6oz2deL3JBCbcXaZVjRJDeI3Olfh 2y+g2S55T0Tepafb0DfZ2CU5i//PhsNqPIyKOhm2/HQAdidPToglhMF34cOjs6F7USHP0ux+66Jch CyM11uNQnskAmNPzrR0G7qMK1UFRMqDsWYnlDnLBMjK+HDA6RkYmf6wFYk3BfZthwPaHYWA+v6yN6 AFLMmthQpqldMK1FHLs9lxWXDZqRzT04urPiqAelqGRahzFM5y9cev+SqN7gbdG3BeNhMlc54+AEw zLXzYa/A==; Received: from [2001:4bb8:18c:2acc:8dfe:be3c:592c:efc5] (helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jysDC-0006GB-5A; Fri, 24 Jul 2020 07:33:46 +0000 From: Christoph Hellwig To: Jens Axboe Cc: Song Liu , Hans de Goede , Richard Weinberger , Minchan Kim , linux-mtd@lists.infradead.org, dm-devel@redhat.com, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, drbd-dev@lists.linbit.com, linux-raid@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, cgroups@vger.kernel.org Subject: [PATCH 13/14] bdi: invert BDI_CAP_NO_ACCT_WB Date: Fri, 24 Jul 2020 09:33:12 +0200 Message-Id: <20200724073313.138789-14-hch@lst.de> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200724073313.138789-1-hch@lst.de> References: <20200724073313.138789-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by casper.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Replace BDI_CAP_NO_ACCT_WB with a positive BDI_CAP_WRITEBACK_ACCT to make the checks more obvious. Also remove the pointless bdi_cap_account_writeback wrapper that just obsfucates the check. Signed-off-by: Christoph Hellwig --- fs/fuse/inode.c | 3 ++- include/linux/backing-dev.h | 13 +++---------- mm/backing-dev.c | 1 + mm/page-writeback.c | 4 ++-- 4 files changed, 8 insertions(+), 13 deletions(-) diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c index 17b00670fb539e..581329203d6860 100644 --- a/fs/fuse/inode.c +++ b/fs/fuse/inode.c @@ -1050,7 +1050,8 @@ static int fuse_bdi_init(struct fuse_conn *fc, struct super_block *sb) return err; /* fuse does it's own writeback accounting */ - sb->s_bdi->capabilities = BDI_CAP_NO_ACCT_WB | BDI_CAP_STRICTLIMIT; + sb->s_bdi->capabilities &= ~BDI_CAP_WRITEBACK_ACCT; + sb->s_bdi->capabilities |= BDI_CAP_STRICTLIMIT; /* * For a single fuse filesystem use max 1% of dirty + diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 5da4ea3dd0cc5c..b217344a2c63be 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -120,17 +120,17 @@ int bdi_set_max_ratio(struct backing_dev_info *bdi, unsigned int max_ratio); * * BDI_CAP_NO_ACCT_DIRTY: Dirty pages shouldn't contribute to accounting * BDI_CAP_NO_WRITEBACK: Don't write pages back - * BDI_CAP_NO_ACCT_WB: Don't automatically account writeback pages + * BDI_CAP_WRITEBACK_ACCT: Automatically account writeback pages * BDI_CAP_STRICTLIMIT: Keep number of dirty pages below bdi threshold. */ #define BDI_CAP_NO_ACCT_DIRTY 0x00000001 #define BDI_CAP_NO_WRITEBACK 0x00000002 -#define BDI_CAP_NO_ACCT_WB 0x00000004 +#define BDI_CAP_WRITEBACK_ACCT 0x00000004 #define BDI_CAP_STRICTLIMIT 0x00000010 #define BDI_CAP_CGROUP_WRITEBACK 0x00000020 #define BDI_CAP_NO_ACCT_AND_WRITEBACK \ - (BDI_CAP_NO_WRITEBACK | BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_ACCT_WB) + (BDI_CAP_NO_WRITEBACK | BDI_CAP_NO_ACCT_DIRTY) extern struct backing_dev_info noop_backing_dev_info; @@ -179,13 +179,6 @@ static inline bool bdi_cap_account_dirty(struct backing_dev_info *bdi) return !(bdi->capabilities & BDI_CAP_NO_ACCT_DIRTY); } -static inline bool bdi_cap_account_writeback(struct backing_dev_info *bdi) -{ - /* Paranoia: BDI_CAP_NO_WRITEBACK implies BDI_CAP_NO_ACCT_WB */ - return !(bdi->capabilities & (BDI_CAP_NO_ACCT_WB | - BDI_CAP_NO_WRITEBACK)); -} - static inline bool mapping_cap_writeback_dirty(struct address_space *mapping) { return bdi_cap_writeback_dirty(inode_to_bdi(mapping->host)); diff --git a/mm/backing-dev.c b/mm/backing-dev.c index 41ec322090fca6..5f5958e1d39060 100644 --- a/mm/backing-dev.c +++ b/mm/backing-dev.c @@ -744,6 +744,7 @@ struct backing_dev_info *bdi_alloc(int node_id) kfree(bdi); return NULL; } + bdi->capabilities = BDI_CAP_WRITEBACK_ACCT; bdi->ra_pages = VM_READAHEAD_PAGES; return bdi; } diff --git a/mm/page-writeback.c b/mm/page-writeback.c index 27a10536adad30..44c4a588f48df5 100644 --- a/mm/page-writeback.c +++ b/mm/page-writeback.c @@ -2740,7 +2740,7 @@ int test_clear_page_writeback(struct page *page) if (ret) { __xa_clear_mark(&mapping->i_pages, page_index(page), PAGECACHE_TAG_WRITEBACK); - if (bdi_cap_account_writeback(bdi)) { + if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) { struct bdi_writeback *wb = inode_to_wb(inode); dec_wb_stat(wb, WB_WRITEBACK); @@ -2793,7 +2793,7 @@ int __test_set_page_writeback(struct page *page, bool keep_write) PAGECACHE_TAG_WRITEBACK); xas_set_mark(&xas, PAGECACHE_TAG_WRITEBACK); - if (bdi_cap_account_writeback(bdi)) + if (bdi->capabilities & BDI_CAP_WRITEBACK_ACCT) inc_wb_stat(inode_to_wb(inode), WB_WRITEBACK); /* -- 2.27.0