btrfs: add sha256 to checksumming algorithm
[linux-2.6-block.git] / fs / btrfs / super.c
index 1b151af2577288055d1743b23732294bf2864d13..36440336c08bdb33ddcc48ad73e753d380d39450 100644 (file)
@@ -66,7 +66,7 @@ static struct file_system_type btrfs_root_fs_type;
 
 static int btrfs_remount(struct super_block *sb, int *flags, char *data);
 
-const char *btrfs_decode_error(int errno)
+const char * __attribute_const__ btrfs_decode_error(int errno)
 {
        char *errstr = "unknown";
 
@@ -187,7 +187,7 @@ static struct ratelimit_state printk_limits[] = {
        RATELIMIT_STATE_INIT(printk_limits[7], DEFAULT_RATELIMIT_INTERVAL, 100),
 };
 
-void btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...)
+void __cold btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...)
 {
        char lvl[PRINTK_MAX_SINGLE_HEADER_LEN + 1] = "\0";
        struct va_format vaf;
@@ -1219,7 +1219,7 @@ static int btrfs_fill_super(struct super_block *sb,
        key.objectid = BTRFS_FIRST_FREE_OBJECTID;
        key.type = BTRFS_INODE_ITEM_KEY;
        key.offset = 0;
-       inode = btrfs_iget(sb, &key, fs_info->fs_root, NULL);
+       inode = btrfs_iget(sb, &key, fs_info->fs_root);
        if (IS_ERR(inode)) {
                err = PTR_ERR(inode);
                goto fail_close;
@@ -1669,7 +1669,6 @@ static void btrfs_resize_thread_pool(struct btrfs_fs_info *fs_info,
 
        btrfs_workqueue_set_max(fs_info->workers, new_pool_size);
        btrfs_workqueue_set_max(fs_info->delalloc_workers, new_pool_size);
-       btrfs_workqueue_set_max(fs_info->submit_workers, new_pool_size);
        btrfs_workqueue_set_max(fs_info->caching_workers, new_pool_size);
        btrfs_workqueue_set_max(fs_info->endio_workers, new_pool_size);
        btrfs_workqueue_set_max(fs_info->endio_meta_workers, new_pool_size);
@@ -2360,10 +2359,14 @@ static int __init init_btrfs_fs(void)
        if (err)
                goto free_cachep;
 
-       err = extent_map_init();
+       err = extent_state_cache_init();
        if (err)
                goto free_extent_io;
 
+       err = extent_map_init();
+       if (err)
+               goto free_extent_state_cache;
+
        err = ordered_data_init();
        if (err)
                goto free_extent_map;
@@ -2422,6 +2425,8 @@ free_ordered_data:
        ordered_data_exit();
 free_extent_map:
        extent_map_exit();
+free_extent_state_cache:
+       extent_state_cache_exit();
 free_extent_io:
        extent_io_exit();
 free_cachep:
@@ -2442,6 +2447,7 @@ static void __exit exit_btrfs_fs(void)
        btrfs_prelim_ref_exit();
        ordered_data_exit();
        extent_map_exit();
+       extent_state_cache_exit();
        extent_io_exit();
        btrfs_interface_exit();
        btrfs_end_io_wq_exit();
@@ -2456,3 +2462,5 @@ module_exit(exit_btrfs_fs)
 
 MODULE_LICENSE("GPL");
 MODULE_SOFTDEP("pre: crc32c");
+MODULE_SOFTDEP("pre: xxhash64");
+MODULE_SOFTDEP("pre: sha256");