]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
xfs: don't create a slab cache for filestream items
authorChristoph Hellwig <hch@lst.de>
Tue, 22 Apr 2014 21:11:51 +0000 (07:11 +1000)
committerDave Chinner <david@fromorbit.com>
Tue, 22 Apr 2014 21:11:51 +0000 (07:11 +1000)
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>
fs/xfs/xfs_filestream.c
fs/xfs/xfs_filestream.h
fs/xfs/xfs_super.c

index ff6f90215c8aa37eff45d2a26faa8b5738869d75..7b94036900138b6cbb9f380b6ffd57354c9910dc 100644 (file)
@@ -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);
-}
index e3a25f891d0840f6de5858bc57ac54a66ba53424..578d49e7cffcec3f5dc7929cbe0a1ee243ccac74 100644 (file)
@@ -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);
index 2053767763773b60d7b7f8aca31f3b31a9219785..89a50e7601776e14a34e6d6a2f23368d5531dcbf 100644 (file)
@@ -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();