From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Mon, 29 Nov 2021 13:47:43 +0100 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1mrg4N-0000K5-1K for lore@lore.pengutronix.de; Mon, 29 Nov 2021 13:47:43 +0100 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mrg4L-0007lD-LO for lore@pengutronix.de; Mon, 29 Nov 2021 13:47:42 +0100 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=LZQf7AACsjgmzTw9gX3eEOckO9fwKT7oWqrSylc0/MY=; b=4GqYlcMhvuen2P iGLv2RdjE2NEgxzqxwuRksTR+N4A3ug2YsmHkNGytQEz1j2LC7EJrdOAuk/gSunFSDfVwleR4Oo4g BWjKX6vPy8FiCPEml4GQYO1po8CXgH0/B0h63RldmTeE82WFt+x9PTs9MQLsVbyZkcKfxtQ1xndmT Sy9Y6EHu/FUROEgk0b39z4VKf9QBE3g5wLqqcnwQDczebr54Ks1gvCmtV/UKmgXnu2xzTaRmqlCtO 72qDMdsYd8G7DEmfFj2ATvNyjo/B8rYAaVr5HvlNxFUuVvrfTlSVU4jKgVeAu52UEDq/IzdDRX7AO MIfMRBwkMk2u+YCeofCg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrg2v-000jCe-Ql; Mon, 29 Nov 2021 12:46:13 +0000 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mrg2q-000jC0-79 for barebox@lists.infradead.org; Mon, 29 Nov 2021 12:46:10 +0000 Received: from dude02.hi.pengutronix.de ([2001:67c:670:100:1d::28]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mrg2p-0007SY-0s; Mon, 29 Nov 2021 13:46:07 +0100 Received: from has by dude02.hi.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1mrg2o-00040K-IH; Mon, 29 Nov 2021 13:46:06 +0100 From: Holger Assmann To: barebox@lists.infradead.org Date: Mon, 29 Nov 2021 13:45:45 +0100 Message-Id: <20211129124545.14171-3-h.assmann@pengutronix.de> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20211129124545.14171-1-h.assmann@pengutronix.de> References: <20211129124545.14171-1-h.assmann@pengutronix.de> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211129_044608_453352_412B29DB X-CRM114-Status: GOOD ( 16.09 ) X-BeenThere: barebox@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Holger Assmann Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "barebox" X-SA-Exim-Connect-IP: 2607:7c80:54:e::133 X-SA-Exim-Mail-From: barebox-bounces+lore=pengutronix.de@lists.infradead.org X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.ext.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-4.8 required=4.0 tests=AWL,BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE,SPF_NONE autolearn=unavailable autolearn_force=no version=3.4.2 Subject: [PATCH v2 2/2] fs: jffs2: remove unnecessary slab cache structure X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on metis.ext.pengutronix.de) jffs2_create_slab_caches() and its subsequent kmem_cache calls are not needed in Barebox since they can directly be replaced by malloc calls. This patch performs that replacement as well as the related clean up. Signed-off-by: Sascha Hauer Signed-off-by: Holger Assmann --- fs/jffs2/fs.c | 10 ---- fs/jffs2/malloc.c | 131 +++++++------------------------------------- fs/jffs2/nodelist.h | 2 - 3 files changed, 19 insertions(+), 124 deletions(-) diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c index 7538252336..b72721cfc4 100644 --- a/fs/jffs2/fs.c +++ b/fs/jffs2/fs.c @@ -416,26 +416,17 @@ static int jffs2_probe(struct device_d *dev) pr_err("error: Failed to initialise compressors\n"); goto err_out; } - - ret = jffs2_create_slab_caches(); - if (ret) { - pr_err("error: Failed to initialise slab caches\n"); - goto err_compressors; - } } if (jffs2_fill_super(fsdev, 0)) { dev_err(dev, "no valid jffs2 found\n"); ret = -EINVAL; - goto err_slab; } jffs2_probe_cnt++; return 0; -err_slab: - jffs2_destroy_slab_caches(); err_compressors: jffs2_compressors_exit(); err_out: @@ -454,7 +445,6 @@ static void jffs2_remove(struct device_d *dev) jffs2_probe_cnt--; if (!jffs2_probe_cnt) { - jffs2_destroy_slab_caches(); jffs2_compressors_exit(); } diff --git a/fs/jffs2/malloc.c b/fs/jffs2/malloc.c index b7afc68cea..7e3e0797b3 100644 --- a/fs/jffs2/malloc.c +++ b/fs/jffs2/malloc.c @@ -17,103 +17,10 @@ #include #include "nodelist.h" -/* These are initialised to NULL in the kernel startup code. - If you're porting to other operating systems, beware */ -static struct kmem_cache *full_dnode_slab; -static struct kmem_cache *raw_dirent_slab; -static struct kmem_cache *raw_inode_slab; -static struct kmem_cache *tmp_dnode_info_slab; -static struct kmem_cache *raw_node_ref_slab; -static struct kmem_cache *node_frag_slab; -static struct kmem_cache *inode_cache_slab; -#ifdef CONFIG_JFFS2_FS_XATTR -static struct kmem_cache *xattr_datum_cache; -static struct kmem_cache *xattr_ref_cache; -#endif - -int __init jffs2_create_slab_caches(void) -{ - full_dnode_slab = kmem_cache_create("jffs2_full_dnode", - sizeof(struct jffs2_full_dnode), - 0, 0, NULL); - if (!full_dnode_slab) - goto err; - - raw_dirent_slab = kmem_cache_create("jffs2_raw_dirent", - sizeof(struct jffs2_raw_dirent), - 0, SLAB_HWCACHE_ALIGN, NULL); - if (!raw_dirent_slab) - goto err; - - raw_inode_slab = kmem_cache_create("jffs2_raw_inode", - sizeof(struct jffs2_raw_inode), - 0, SLAB_HWCACHE_ALIGN, NULL); - if (!raw_inode_slab) - goto err; - - tmp_dnode_info_slab = kmem_cache_create("jffs2_tmp_dnode", - sizeof(struct jffs2_tmp_dnode_info), - 0, 0, NULL); - if (!tmp_dnode_info_slab) - goto err; - - raw_node_ref_slab = kmem_cache_create("jffs2_refblock", - sizeof(struct jffs2_raw_node_ref) * (REFS_PER_BLOCK + 1), - 0, 0, NULL); - if (!raw_node_ref_slab) - goto err; - - node_frag_slab = kmem_cache_create("jffs2_node_frag", - sizeof(struct jffs2_node_frag), - 0, 0, NULL); - if (!node_frag_slab) - goto err; - - inode_cache_slab = kmem_cache_create("jffs2_inode_cache", - sizeof(struct jffs2_inode_cache), - 0, 0, NULL); - if (!inode_cache_slab) - goto err; - -#ifdef CONFIG_JFFS2_FS_XATTR - xattr_datum_cache = kmem_cache_create("jffs2_xattr_datum", - sizeof(struct jffs2_xattr_datum), - 0, 0, NULL); - if (!xattr_datum_cache) - goto err; - - xattr_ref_cache = kmem_cache_create("jffs2_xattr_ref", - sizeof(struct jffs2_xattr_ref), - 0, 0, NULL); - if (!xattr_ref_cache) - goto err; -#endif - - return 0; - err: - jffs2_destroy_slab_caches(); - return -ENOMEM; -} - -void jffs2_destroy_slab_caches(void) -{ - kmem_cache_destroy(full_dnode_slab); - kmem_cache_destroy(raw_dirent_slab); - kmem_cache_destroy(raw_inode_slab); - kmem_cache_destroy(tmp_dnode_info_slab); - kmem_cache_destroy(raw_node_ref_slab); - kmem_cache_destroy(node_frag_slab); - kmem_cache_destroy(inode_cache_slab); -#ifdef CONFIG_JFFS2_FS_XATTR - kmem_cache_destroy(xattr_datum_cache); - kmem_cache_destroy(xattr_ref_cache); -#endif -} - struct jffs2_full_dirent *jffs2_alloc_full_dirent(int namesize) { struct jffs2_full_dirent *ret; - ret = kmalloc(sizeof(struct jffs2_full_dirent) + namesize, GFP_KERNEL); + ret = kmalloc(sizeof(*ret) + namesize, GFP_KERNEL); dbg_memalloc("%p\n", ret); return ret; } @@ -127,7 +34,7 @@ void jffs2_free_full_dirent(struct jffs2_full_dirent *x) struct jffs2_full_dnode *jffs2_alloc_full_dnode(void) { struct jffs2_full_dnode *ret; - ret = kmem_cache_alloc(full_dnode_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ret); return ret; } @@ -135,13 +42,13 @@ struct jffs2_full_dnode *jffs2_alloc_full_dnode(void) void jffs2_free_full_dnode(struct jffs2_full_dnode *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(full_dnode_slab, x); + free(x); } struct jffs2_raw_dirent *jffs2_alloc_raw_dirent(void) { struct jffs2_raw_dirent *ret; - ret = kmem_cache_alloc(raw_dirent_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ret); return ret; } @@ -149,13 +56,13 @@ struct jffs2_raw_dirent *jffs2_alloc_raw_dirent(void) void jffs2_free_raw_dirent(struct jffs2_raw_dirent *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(raw_dirent_slab, x); + free(x); } struct jffs2_raw_inode *jffs2_alloc_raw_inode(void) { struct jffs2_raw_inode *ret; - ret = kmem_cache_alloc(raw_inode_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ret); return ret; } @@ -163,13 +70,13 @@ struct jffs2_raw_inode *jffs2_alloc_raw_inode(void) void jffs2_free_raw_inode(struct jffs2_raw_inode *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(raw_inode_slab, x); + free(x); } struct jffs2_tmp_dnode_info *jffs2_alloc_tmp_dnode_info(void) { struct jffs2_tmp_dnode_info *ret; - ret = kmem_cache_alloc(tmp_dnode_info_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ret); return ret; @@ -178,14 +85,14 @@ struct jffs2_tmp_dnode_info *jffs2_alloc_tmp_dnode_info(void) void jffs2_free_tmp_dnode_info(struct jffs2_tmp_dnode_info *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(tmp_dnode_info_slab, x); + free(x); } static struct jffs2_raw_node_ref *jffs2_alloc_refblock(void) { struct jffs2_raw_node_ref *ret; - ret = kmem_cache_alloc(raw_node_ref_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret) * (REFS_PER_BLOCK + 1)); if (ret) { int i = 0; for (i=0; i < REFS_PER_BLOCK; i++) { @@ -242,13 +149,13 @@ int jffs2_prealloc_raw_node_refs(struct jffs2_sb_info *c, void jffs2_free_refblock(struct jffs2_raw_node_ref *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(raw_node_ref_slab, x); + free(x); } struct jffs2_node_frag *jffs2_alloc_node_frag(void) { struct jffs2_node_frag *ret; - ret = kmem_cache_alloc(node_frag_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ret); return ret; } @@ -256,13 +163,13 @@ struct jffs2_node_frag *jffs2_alloc_node_frag(void) void jffs2_free_node_frag(struct jffs2_node_frag *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(node_frag_slab, x); + free(x); } struct jffs2_inode_cache *jffs2_alloc_inode_cache(void) { struct jffs2_inode_cache *ret; - ret = kmem_cache_alloc(inode_cache_slab, GFP_KERNEL); + ret = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ret); return ret; } @@ -270,14 +177,14 @@ struct jffs2_inode_cache *jffs2_alloc_inode_cache(void) void jffs2_free_inode_cache(struct jffs2_inode_cache *x) { dbg_memalloc("%p\n", x); - kmem_cache_free(inode_cache_slab, x); + free(x); } #ifdef CONFIG_JFFS2_FS_XATTR struct jffs2_xattr_datum *jffs2_alloc_xattr_datum(void) { struct jffs2_xattr_datum *xd; - xd = kmem_cache_zalloc(xattr_datum_cache, GFP_KERNEL); + xd = malloc(sizeof(*ret)); dbg_memalloc("%p\n", xd); if (!xd) return NULL; @@ -291,13 +198,13 @@ struct jffs2_xattr_datum *jffs2_alloc_xattr_datum(void) void jffs2_free_xattr_datum(struct jffs2_xattr_datum *xd) { dbg_memalloc("%p\n", xd); - kmem_cache_free(xattr_datum_cache, xd); + free(xd); } struct jffs2_xattr_ref *jffs2_alloc_xattr_ref(void) { struct jffs2_xattr_ref *ref; - ref = kmem_cache_zalloc(xattr_ref_cache, GFP_KERNEL); + ref = malloc(sizeof(*ret)); dbg_memalloc("%p\n", ref); if (!ref) return NULL; @@ -310,6 +217,6 @@ struct jffs2_xattr_ref *jffs2_alloc_xattr_ref(void) void jffs2_free_xattr_ref(struct jffs2_xattr_ref *ref) { dbg_memalloc("%p\n", ref); - kmem_cache_free(xattr_ref_cache, ref); + free(ref); } #endif diff --git a/fs/jffs2/nodelist.h b/fs/jffs2/nodelist.h index 20deb639f6..7ea18cd2fc 100644 --- a/fs/jffs2/nodelist.h +++ b/fs/jffs2/nodelist.h @@ -441,8 +441,6 @@ int jffs2_do_crccheck_inode(struct jffs2_sb_info *c, struct jffs2_inode_cache *i void jffs2_do_clear_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f); /* malloc.c */ -int jffs2_create_slab_caches(void); -void jffs2_destroy_slab_caches(void); struct jffs2_full_dirent *jffs2_alloc_full_dirent(int namesize); void jffs2_free_full_dirent(struct jffs2_full_dirent *); -- 2.30.2 _______________________________________________ barebox mailing list barebox@lists.infradead.org http://lists.infradead.org/mailman/listinfo/barebox