Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp397265ybg; Sun, 26 Jul 2020 08:05:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxlpmulCMN1jTX9BWwU+9owwTKqZwP9B04VmaKmqaaNT0hKUgE+uwj5M+zNiu/FYEs1AOQx X-Received: by 2002:aa7:c341:: with SMTP id j1mr18191966edr.197.1595775902921; Sun, 26 Jul 2020 08:05:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595775902; cv=none; d=google.com; s=arc-20160816; b=IJPTdn5gNosognS8ELJuMUIvgDqL1qWcbBLDQrplmH8f6OAVerituD0G3pPi3MsDC/ /YeG13EOdWMS85FMyLp7fZYzLjXcfRgmlT2LWobiRgZc83vY/y5cxISCkUbmoZhC42vc xbXqISwoTIFBDetB5mtrybuEf5cWrOAnqtEP1uyczvhy2fEnVgWriq1U5wFMFZlqeDdh mP61OAxjKIYInnoQv5jKec8yVTtaVIOoDfyb0Ma12PZn5r/cKUmBuQtI2LXJI5HqmNUh I4bXEVmFmfIdQlS46yNaUJ9BPxUWhaO9RpXDszoNL0opfSq20FSYGe5nM0wv1yUndKyR Gjwg== 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=RnUKCWg8JjLanH+4G/WHR2LBWvDi0SvOaHv9TBDMugQ6hg8WQAc2TrUYjEk8ioup4+ uFM/J7V4RXcUhIOKFXTyUSzzZRQjbcqZUPsQGAKQxgwgtQ8178zBiOO0PK2ZBxAHkQc1 XWMKS1LD+kX875OeKW3Z28QiU2I+2B4ZBU2RrQ0KQNARhxutY4lKfWpNBKoVOFZotBMv qnE6Qhsri1wWnchjh/4py9YyOl29wdKZ+f01OaZAESE7AVFOWRfttCL7LbqrTwQ7+tog yOjvEb3bBJCM9nr3NEkR2GLKpqOIp8AcmprcT9BYPFbEfeblGdnFJNldMwTmL0lB8MZ5 aVxw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=casper.20170209 header.b=f3UgfQ8h; 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 bs4si762902ejb.104.2020.07.26.08.04.41; Sun, 26 Jul 2020 08:05:02 -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=f3UgfQ8h; 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 S1727784AbgGZPEL (ORCPT + 99 others); Sun, 26 Jul 2020 11:04:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47386 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727087AbgGZPEG (ORCPT ); Sun, 26 Jul 2020 11:04:06 -0400 Received: from casper.infradead.org (casper.infradead.org [IPv6:2001:8b0:10b:1236::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1A97C0619D2; Sun, 26 Jul 2020 08:04:05 -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=f3UgfQ8hLhGRKnEIcJIF6+Ug/p ZgWSVLXO6534ZWjGSn/d3M3QSUbS0dntzRSnV8WNnVc+D2wK94i4BW7CwRbGEI2RCXTgUOcFO9qYe EyQfI79XsNrDhwVWvkakECIgrtTQayZv+o9AEnmWjhpZhCmDGgb+N1oBq8pjz12N5UnxAMTaZFlpN X4UREkRIUPFKbFSWzTPRQ4epEHQB9CuZY12Vgl+qvMZoQWAzhqfTMoADAJxRAu3wm2tm5drlkLYj/ XA6dY1GlaDm7NJkrPEyY3XpMBTDKORCRAPttlE1Iw5WB4lns0dHoNs/IOEZ3BMJN55MUXwVKr3uPb zAA/qlGA==; Received: from [2001:4bb8:18c:2acc:2375:88ff:9f84:118d] (helo=localhost) by casper.infradead.org with esmtpsa (Exim 4.92.3 #3 (Red Hat Linux)) id 1jziBx-0005iq-6t; Sun, 26 Jul 2020 15:03:57 +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: Sun, 26 Jul 2020 17:03:32 +0200 Message-Id: <20200726150333.305527-14-hch@lst.de> X-Mailer: git-send-email 2.27.0 In-Reply-To: <20200726150333.305527-1-hch@lst.de> References: <20200726150333.305527-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