aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/super.c
diff options
context:
space:
mode:
authorMiao Xie <miaox@cn.fujitsu.com>2012-11-20 21:21:28 -0500
committerJosef Bacik <jbacik@fusionio.com>2013-02-20 09:36:34 -0500
commit78a6184a3ff9041280ee56273c01e5679a831b39 (patch)
tree0310eb020cf6ed7a8ff71feb8c468bb6e42488fa /fs/btrfs/super.c
parent6f60cbd3ae442cb35861bb522f388db123d42ec1 (diff)
Btrfs: use slabs for delayed reference allocation
The delayed reference allocation is in the fast path of the IO, so use slabs to improve the speed of the allocation. And besides that, it can do check for leaked objects when the module is removed. Signed-off-by: Miao Xie <miaox@cn.fujitsu.com>
Diffstat (limited to 'fs/btrfs/super.c')
-rw-r--r--fs/btrfs/super.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index d8982e9601d3..67b373bf3ff9 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -1684,10 +1684,14 @@ static int __init init_btrfs_fs(void)
1684 if (err) 1684 if (err)
1685 goto free_delayed_inode; 1685 goto free_delayed_inode;
1686 1686
1687 err = btrfs_interface_init(); 1687 err = btrfs_delayed_ref_init();
1688 if (err) 1688 if (err)
1689 goto free_auto_defrag; 1689 goto free_auto_defrag;
1690 1690
1691 err = btrfs_interface_init();
1692 if (err)
1693 goto free_delayed_ref;
1694
1691 err = register_filesystem(&btrfs_fs_type); 1695 err = register_filesystem(&btrfs_fs_type);
1692 if (err) 1696 if (err)
1693 goto unregister_ioctl; 1697 goto unregister_ioctl;
@@ -1699,6 +1703,8 @@ static int __init init_btrfs_fs(void)
1699 1703
1700unregister_ioctl: 1704unregister_ioctl:
1701 btrfs_interface_exit(); 1705 btrfs_interface_exit();
1706free_delayed_ref:
1707 btrfs_delayed_ref_exit();
1702free_auto_defrag: 1708free_auto_defrag:
1703 btrfs_auto_defrag_exit(); 1709 btrfs_auto_defrag_exit();
1704free_delayed_inode: 1710free_delayed_inode:
@@ -1720,6 +1726,7 @@ free_compress:
1720static void __exit exit_btrfs_fs(void) 1726static void __exit exit_btrfs_fs(void)
1721{ 1727{
1722 btrfs_destroy_cachep(); 1728 btrfs_destroy_cachep();
1729 btrfs_delayed_ref_exit();
1723 btrfs_auto_defrag_exit(); 1730 btrfs_auto_defrag_exit();
1724 btrfs_delayed_inode_exit(); 1731 btrfs_delayed_inode_exit();
1725 ordered_data_exit(); 1732 ordered_data_exit();