Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp158505ybl; Thu, 29 Aug 2019 20:41:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqytt0gEbuyV9T02sCE9ykql+IvL/7a5kIR+2nj0hwrY47zSyYLRrllwmU31N/b3ADEsXa2q X-Received: by 2002:a17:902:fe0f:: with SMTP id g15mr13210329plj.2.1567136471974; Thu, 29 Aug 2019 20:41:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1567136471; cv=none; d=google.com; s=arc-20160816; b=M7XMY2ZfcRG0FUBHnA9I35hkp9RPa9AOFKV0QuCw6FmocFWcKcZpyV7mfd352UIYwy v2j7ec4AEAnxAQH5d5I8sEq/iGjJq8yK16iihyeWnExrKJsVwivMT5iwvRsfYEoBlqjP Ub9GuZNmnUejQNSeYegB/83g67ECKZI/2aKZ7eZdt2HxIFoEK0HbtIm6vssAHPx8AIIm 8F/AGyagLUBXSecuNSdBFjW1LQAecpxjDyaUwiabAuU/zaZ7tR869gJxe4J27pt7PghX oMPh6NBvHjAADGUZsJO77x7ArslxVZIcpzc47xGegQwwM0xJd1+4QA+aAj1Qa3SR6tqh JNdw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=suLA+3UVpnC0edODgY9Iobhhy/xzQQI8oWTvQX3Mh0k=; b=stEUaaPVtyd9ZmVMH3dtaR93h2ygiHWD5dNeLadsrCYtSsJ46kR1qfYSlbW0f7Dln6 fwn3L5ESNRlLndqykrZk8jDaTqjIPczxWwvsKZzwUHu/T2XINKPt4nusk7jG4rsPDleH k1VACoCxtrlx1rI2kywSTp8wZ+PRw89Hy69Na6rJXUXZqe7SC4CNjRZbSsv3K8qeh7K8 BZfkv24NsNCTsXcBD1O3V0zXdjWBXKuNC9QyKrjkCD2lnxk4F7LA41Pmk3tJYXCk5gWX Riyvx0UYGypZ5VKuVoOMqayUWho0AsUsGrMdVwc4RKYBTG/R6g4aVLxdtleczJRiOomC fCXg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h38si3516618pgi.327.2019.08.29.20.40.56; Thu, 29 Aug 2019 20:41:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728043AbfH3Dh6 (ORCPT + 99 others); Thu, 29 Aug 2019 23:37:58 -0400 Received: from szxga04-in.huawei.com ([45.249.212.190]:6140 "EHLO huawei.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727923AbfH3Dhq (ORCPT ); Thu, 29 Aug 2019 23:37:46 -0400 Received: from DGGEMS404-HUB.china.huawei.com (unknown [172.30.72.59]) by Forcepoint Email with ESMTP id 483BAEEDE2AF0D28A9B0; Fri, 30 Aug 2019 11:37:45 +0800 (CST) Received: from architecture4.huawei.com (10.140.130.215) by smtp.huawei.com (10.3.19.204) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 30 Aug 2019 11:37:34 +0800 From: Gao Xiang To: Chao Yu , Dan Carpenter , Christoph Hellwig , Joe Perches , "Greg Kroah-Hartman" , CC: LKML , , "Chao Yu" , Miao Xie , , Fang Wei , Gao Xiang Subject: [PATCH v3 5/7] erofs: kill erofs_{init,exit}_inode_cache Date: Fri, 30 Aug 2019 11:36:41 +0800 Message-ID: <20190830033643.51019-5-gaoxiang25@huawei.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190830033643.51019-1-gaoxiang25@huawei.com> References: <20190830032006.GA20217@architecture4> <20190830033643.51019-1-gaoxiang25@huawei.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.140.130.215] X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As Christoph said [1] "having this function seems entirely pointless", I have to kill those. filesystem function name ext2,f2fs,ext4,isofs,squashfs,cifs,... init_inodecache In addition, add a "rcu_barrier()" when exit_fs(); [1] https://lore.kernel.org/r/20190829101545.GC20598@infradead.org/ Reported-by: Christoph Hellwig Signed-off-by: Gao Xiang --- no change. fs/erofs/super.c | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/fs/erofs/super.c b/fs/erofs/super.c index 6d3a9bcb8daa..556aae5426d6 100644 --- a/fs/erofs/super.c +++ b/fs/erofs/super.c @@ -23,21 +23,6 @@ static void init_once(void *ptr) inode_init_once(&vi->vfs_inode); } -static int __init erofs_init_inode_cache(void) -{ - erofs_inode_cachep = kmem_cache_create("erofs_inode", - sizeof(struct erofs_vnode), 0, - SLAB_RECLAIM_ACCOUNT, - init_once); - - return erofs_inode_cachep ? 0 : -ENOMEM; -} - -static void erofs_exit_inode_cache(void) -{ - kmem_cache_destroy(erofs_inode_cachep); -} - static struct inode *alloc_inode(struct super_block *sb) { struct erofs_vnode *vi = @@ -531,9 +516,14 @@ static int __init erofs_module_init(void) erofs_check_ondisk_layout_definitions(); infoln("initializing erofs " EROFS_VERSION); - err = erofs_init_inode_cache(); - if (err) + erofs_inode_cachep = kmem_cache_create("erofs_inode", + sizeof(struct erofs_vnode), 0, + SLAB_RECLAIM_ACCOUNT, + init_once); + if (!erofs_inode_cachep) { + err = -ENOMEM; goto icache_err; + } err = erofs_init_shrinker(); if (err) @@ -555,7 +545,7 @@ static int __init erofs_module_init(void) zip_err: erofs_exit_shrinker(); shrinker_err: - erofs_exit_inode_cache(); + kmem_cache_destroy(erofs_inode_cachep); icache_err: return err; } @@ -565,7 +555,10 @@ static void __exit erofs_module_exit(void) unregister_filesystem(&erofs_fs_type); z_erofs_exit_zip_subsystem(); erofs_exit_shrinker(); - erofs_exit_inode_cache(); + + /* Ensure all RCU free inodes are safe before cache is destroyed. */ + rcu_barrier(); + kmem_cache_destroy(erofs_inode_cachep); infoln("successfully finalize erofs"); } -- 2.17.1