summaryrefslogtreecommitdiff
path: root/fs/xfs
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2014-04-22 21:11:51 (GMT)
committerDave Chinner <david@fromorbit.com>2014-04-22 21:11:51 (GMT)
commit1919adda0732e661c6163a6505dddb0bc423b8d8 (patch)
tree401679adbf7a8bbc883771d32b36ff9ea91c396d /fs/xfs
parent2cd2ef6a300b1ac912bb515b75451585c3d33ea9 (diff)
downloadlinux-1919adda0732e661c6163a6505dddb0bc423b8d8.tar.xz
xfs: don't create a slab cache for filestream items
We only have very few of these around, and allocation isn't that much of a hot path. Remove the slab cache to simplify the code, and to not waste any resources for the usual case of not having any inodes that use the filestream allocator. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs')
-rw-r--r--fs/xfs/xfs_filestream.c25
-rw-r--r--fs/xfs/xfs_filestream.h2
-rw-r--r--fs/xfs/xfs_super.c9
3 files changed, 4 insertions, 32 deletions
diff --git a/fs/xfs/xfs_filestream.c b/fs/xfs/xfs_filestream.c
index ff6f902..7b94036 100644
--- a/fs/xfs/xfs_filestream.c
+++ b/fs/xfs/xfs_filestream.c
@@ -39,8 +39,6 @@
#define TRACE_FREE(mp, ip, pip, ag, cnt)
#define TRACE_LOOKUP(mp, ip, pip, ag, cnt)
-static kmem_zone_t *item_zone;
-
struct xfs_fstrm_item {
struct xfs_mru_cache_elem mru;
struct xfs_inode *ip;
@@ -141,7 +139,7 @@ xfs_fstrm_free_func(
TRACE_FREE(mp, ip, NULL, item->ag,
xfs_filestream_peek_ag(mp, item->ag));
- kmem_zone_free(item_zone, item);
+ kmem_free(item);
}
/*
@@ -272,7 +270,7 @@ next_ag:
return 0;
err = ENOMEM;
- item = kmem_zone_zalloc(item_zone, KM_MAYFAIL);
+ item = kmem_alloc(sizeof(*item), KM_MAYFAIL);
if (!item)
goto out_put_ag;
@@ -289,7 +287,7 @@ next_ag:
return 0;
out_free_item:
- kmem_zone_free(item_zone, item);
+ kmem_free(item);
out_put_ag:
xfs_filestream_put_ag(mp, *agp);
return err;
@@ -474,20 +472,3 @@ xfs_filestream_unmount(
{
xfs_mru_cache_destroy(mp->m_filestream);
}
-
-
-/* needs to return a positive errno for the init path */
-int
-xfs_filestream_init(void)
-{
- item_zone = kmem_zone_init(sizeof(struct xfs_fstrm_item), "fstrm_item");
- if (!item_zone)
- return -ENOMEM;
- return 0;
-}
-
-void
-xfs_filestream_uninit(void)
-{
- kmem_zone_destroy(item_zone);
-}
diff --git a/fs/xfs/xfs_filestream.h b/fs/xfs/xfs_filestream.h
index e3a25f8..578d49e 100644
--- a/fs/xfs/xfs_filestream.h
+++ b/fs/xfs/xfs_filestream.h
@@ -22,8 +22,6 @@ struct xfs_mount;
struct xfs_inode;
struct xfs_bmalloca;
-int xfs_filestream_init(void);
-void xfs_filestream_uninit(void);
int xfs_filestream_mount(struct xfs_mount *mp);
void xfs_filestream_unmount(struct xfs_mount *mp);
void xfs_filestream_deassociate(struct xfs_inode *ip);
diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c
index 2053767..89a50e7 100644
--- a/fs/xfs/xfs_super.c
+++ b/fs/xfs/xfs_super.c
@@ -1754,13 +1754,9 @@ init_xfs_fs(void)
if (error)
goto out_destroy_wq;
- error = xfs_filestream_init();
- if (error)
- goto out_mru_cache_uninit;
-
error = xfs_buf_init();
if (error)
- goto out_filestream_uninit;
+ goto out_mru_cache_uninit;
error = xfs_init_procfs();
if (error)
@@ -1787,8 +1783,6 @@ init_xfs_fs(void)
xfs_cleanup_procfs();
out_buf_terminate:
xfs_buf_terminate();
- out_filestream_uninit:
- xfs_filestream_uninit();
out_mru_cache_uninit:
xfs_mru_cache_uninit();
out_destroy_wq:
@@ -1807,7 +1801,6 @@ exit_xfs_fs(void)
xfs_sysctl_unregister();
xfs_cleanup_procfs();
xfs_buf_terminate();
- xfs_filestream_uninit();
xfs_mru_cache_uninit();
xfs_destroy_workqueues();
xfs_destroy_zones();