On 03/01/2018 12:42 PM, kbuild test robot wrote:
Hi Anand,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on btrfs/next]
[also build test ERROR on v4.16-rc3 next-20180228]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Anand-Jain/btrfs-rename-btrfs_close_extra_device-to-btrfs_free_extra_devids/20180301-120850
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs.git 
next
config: x86_64-randconfig-x016-201808 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
         # save the attached .config to linux build tree
         make ARCH=x86_64

All errors (new ones prefixed by >>):


 there is v2 which already fixed this.

Thanks,
Anand

    fs/btrfs/disk-io.c: In function 'open_ctree':
fs/btrfs/disk-io.c:2783:2: error: implicit declaration of function 
'btrfs_free_extra_devids'; did you mean 'btrfs_free_extra_devid'? 
[-Werror=implicit-function-declaration]
      btrfs_free_extra_devids(fs_devices, 0);
      ^~~~~~~~~~~~~~~~~~~~~~~
      btrfs_free_extra_devid
    cc1: some warnings being treated as errors

vim +2783 fs/btrfs/disk-io.c

   2396 
   2397 int open_ctree(struct super_block *sb,
   2398                struct btrfs_fs_devices *fs_devices,
   2399                char *options)
   2400 {
   2401         u32 sectorsize;
   2402         u32 nodesize;
   2403         u32 stripesize;
   2404         u64 generation;
   2405         u64 features;
   2406         struct btrfs_key location;
   2407         struct buffer_head *bh;
   2408         struct btrfs_super_block *disk_super;
   2409         struct btrfs_fs_info *fs_info = btrfs_sb(sb);
   2410         struct btrfs_root *tree_root;
   2411         struct btrfs_root *chunk_root;
   2412         int ret;
   2413         int err = -EINVAL;
   2414         int num_backups_tried = 0;
   2415         int backup_index = 0;
   2416         int max_active;
   2417         int clear_free_space_tree = 0;
   2418 
   2419         tree_root = fs_info->tree_root = btrfs_alloc_root(fs_info, 
GFP_KERNEL);
   2420         chunk_root = fs_info->chunk_root = btrfs_alloc_root(fs_info, 
GFP_KERNEL);
   2421         if (!tree_root || !chunk_root) {
   2422                 err = -ENOMEM;
   2423                 goto fail;
   2424         }
   2425 
   2426         ret = init_srcu_struct(&fs_info->subvol_srcu);
   2427         if (ret) {
   2428                 err = ret;
   2429                 goto fail;
   2430         }
   2431 
   2432         ret = percpu_counter_init(&fs_info->dirty_metadata_bytes, 0, 
GFP_KERNEL);
   2433         if (ret) {
   2434                 err = ret;
   2435                 goto fail_srcu;
   2436         }
   2437         fs_info->dirty_metadata_batch = PAGE_SIZE *
   2438                                         (1 + ilog2(nr_cpu_ids));
   2439 
   2440         ret = percpu_counter_init(&fs_info->delalloc_bytes, 0, 
GFP_KERNEL);
   2441         if (ret) {
   2442                 err = ret;
   2443                 goto fail_dirty_metadata_bytes;
   2444         }
   2445 
   2446         ret = percpu_counter_init(&fs_info->bio_counter, 0, GFP_KERNEL);
   2447         if (ret) {
   2448                 err = ret;
   2449                 goto fail_delalloc_bytes;
   2450         }
   2451 
   2452         INIT_RADIX_TREE(&fs_info->fs_roots_radix, GFP_ATOMIC);
   2453         INIT_RADIX_TREE(&fs_info->buffer_radix, GFP_ATOMIC);
   2454         INIT_LIST_HEAD(&fs_info->trans_list);
   2455         INIT_LIST_HEAD(&fs_info->dead_roots);
   2456         INIT_LIST_HEAD(&fs_info->delayed_iputs);
   2457         INIT_LIST_HEAD(&fs_info->delalloc_roots);
   2458         INIT_LIST_HEAD(&fs_info->caching_block_groups);
   2459         spin_lock_init(&fs_info->delalloc_root_lock);
   2460         spin_lock_init(&fs_info->trans_lock);
   2461         spin_lock_init(&fs_info->fs_roots_radix_lock);
   2462         spin_lock_init(&fs_info->delayed_iput_lock);
   2463         spin_lock_init(&fs_info->defrag_inodes_lock);
   2464         spin_lock_init(&fs_info->tree_mod_seq_lock);
   2465         spin_lock_init(&fs_info->super_lock);
   2466         spin_lock_init(&fs_info->qgroup_op_lock);
   2467         spin_lock_init(&fs_info->buffer_lock);
   2468         spin_lock_init(&fs_info->unused_bgs_lock);
   2469         rwlock_init(&fs_info->tree_mod_log_lock);
   2470         mutex_init(&fs_info->unused_bg_unpin_mutex);
   2471         mutex_init(&fs_info->delete_unused_bgs_mutex);
   2472         mutex_init(&fs_info->reloc_mutex);
   2473         mutex_init(&fs_info->delalloc_root_mutex);
   2474         mutex_init(&fs_info->cleaner_delayed_iput_mutex);
   2475         seqlock_init(&fs_info->profiles_lock);
   2476 
   2477         INIT_LIST_HEAD(&fs_info->dirty_cowonly_roots);
   2478         INIT_LIST_HEAD(&fs_info->space_info);
   2479         INIT_LIST_HEAD(&fs_info->tree_mod_seq_list);
   2480         INIT_LIST_HEAD(&fs_info->unused_bgs);
   2481         btrfs_mapping_init(&fs_info->mapping_tree);
   2482         btrfs_init_block_rsv(&fs_info->global_block_rsv,
   2483                              BTRFS_BLOCK_RSV_GLOBAL);
   2484         btrfs_init_block_rsv(&fs_info->trans_block_rsv, 
BTRFS_BLOCK_RSV_TRANS);
   2485         btrfs_init_block_rsv(&fs_info->chunk_block_rsv, 
BTRFS_BLOCK_RSV_CHUNK);
   2486         btrfs_init_block_rsv(&fs_info->empty_block_rsv, 
BTRFS_BLOCK_RSV_EMPTY);
   2487         btrfs_init_block_rsv(&fs_info->delayed_block_rsv,
   2488                              BTRFS_BLOCK_RSV_DELOPS);
   2489         atomic_set(&fs_info->async_delalloc_pages, 0);
   2490         atomic_set(&fs_info->defrag_running, 0);
   2491         atomic_set(&fs_info->qgroup_op_seq, 0);
   2492         atomic_set(&fs_info->reada_works_cnt, 0);
   2493         atomic64_set(&fs_info->tree_mod_seq, 0);
   2494         fs_info->sb = sb;
   2495         fs_info->max_inline = BTRFS_DEFAULT_MAX_INLINE;
   2496         fs_info->metadata_ratio = 0;
   2497         fs_info->defrag_inodes = RB_ROOT;
   2498         atomic64_set(&fs_info->free_chunk_space, 0);
   2499         fs_info->tree_mod_log = RB_ROOT;
   2500         fs_info->commit_interval = BTRFS_DEFAULT_COMMIT_INTERVAL;
   2501         fs_info->avg_delayed_ref_runtime = NSEC_PER_SEC >> 6; /* div by 
64 */
   2502         /* readahead state */
   2503         INIT_RADIX_TREE(&fs_info->reada_tree, GFP_NOFS & 
~__GFP_DIRECT_RECLAIM);
   2504         spin_lock_init(&fs_info->reada_lock);
   2505         btrfs_init_ref_verify(fs_info);
   2506 
   2507         fs_info->thread_pool_size = min_t(unsigned long,
   2508                                           num_online_cpus() + 2, 8);
   2509 
   2510         INIT_LIST_HEAD(&fs_info->ordered_roots);
   2511         spin_lock_init(&fs_info->ordered_root_lock);
   2512 
   2513         fs_info->btree_inode = new_inode(sb);
   2514         if (!fs_info->btree_inode) {
   2515                 err = -ENOMEM;
   2516                 goto fail_bio_counter;
   2517         }
   2518         mapping_set_gfp_mask(fs_info->btree_inode->i_mapping, GFP_NOFS);
   2519 
   2520         fs_info->delayed_root = kmalloc(sizeof(struct 
btrfs_delayed_root),
   2521                                         GFP_KERNEL);
   2522         if (!fs_info->delayed_root) {
   2523                 err = -ENOMEM;
   2524                 goto fail_iput;
   2525         }
   2526         btrfs_init_delayed_root(fs_info->delayed_root);
   2527 
   2528         btrfs_init_scrub(fs_info);
   2529 #ifdef CONFIG_BTRFS_FS_CHECK_INTEGRITY
   2530         fs_info->check_integrity_print_mask = 0;
   2531 #endif
   2532         btrfs_init_balance(fs_info);
   2533         btrfs_init_async_reclaim_work(&fs_info->async_reclaim_work);
   2534 
   2535         sb->s_blocksize = BTRFS_BDEV_BLOCKSIZE;
   2536         sb->s_blocksize_bits = blksize_bits(BTRFS_BDEV_BLOCKSIZE);
   2537 
   2538         btrfs_init_btree_inode(fs_info);
   2539 
   2540         spin_lock_init(&fs_info->block_group_cache_lock);
   2541         fs_info->block_group_cache_tree = RB_ROOT;
   2542         fs_info->first_logical_byte = (u64)-1;
   2543 
   2544         extent_io_tree_init(&fs_info->freed_extents[0], NULL);
   2545         extent_io_tree_init(&fs_info->freed_extents[1], NULL);
   2546         fs_info->pinned_extents = &fs_info->freed_extents[0];
   2547         set_bit(BTRFS_FS_BARRIER, &fs_info->flags);
   2548 
   2549         mutex_init(&fs_info->ordered_operations_mutex);
   2550         mutex_init(&fs_info->tree_log_mutex);
   2551         mutex_init(&fs_info->chunk_mutex);
   2552         mutex_init(&fs_info->transaction_kthread_mutex);
   2553         mutex_init(&fs_info->cleaner_mutex);
   2554         mutex_init(&fs_info->volume_mutex);
   2555         mutex_init(&fs_info->ro_block_group_mutex);
   2556         init_rwsem(&fs_info->commit_root_sem);
   2557         init_rwsem(&fs_info->cleanup_work_sem);
   2558         init_rwsem(&fs_info->subvol_sem);
   2559         sema_init(&fs_info->uuid_tree_rescan_sem, 1);
   2560 
   2561         btrfs_init_dev_replace_locks(fs_info);
   2562         btrfs_init_qgroup(fs_info);
   2563 
   2564         btrfs_init_free_cluster(&fs_info->meta_alloc_cluster);
   2565         btrfs_init_free_cluster(&fs_info->data_alloc_cluster);
   2566 
   2567         init_waitqueue_head(&fs_info->transaction_throttle);
   2568         init_waitqueue_head(&fs_info->transaction_wait);
   2569         init_waitqueue_head(&fs_info->transaction_blocked_wait);
   2570         init_waitqueue_head(&fs_info->async_submit_wait);
   2571 
   2572         INIT_LIST_HEAD(&fs_info->pinned_chunks);
   2573 
   2574         /* Usable values until the real ones are cached from the 
superblock */
   2575         fs_info->nodesize = 4096;
   2576         fs_info->sectorsize = 4096;
   2577         fs_info->stripesize = 4096;
   2578 
   2579         ret = btrfs_alloc_stripe_hash_table(fs_info);
   2580         if (ret) {
   2581                 err = ret;
   2582                 goto fail_alloc;
   2583         }
   2584 
   2585         __setup_root(tree_root, fs_info, BTRFS_ROOT_TREE_OBJECTID);
   2586 
   2587         invalidate_bdev(fs_devices->latest_bdev);
   2588 
   2589         /*
   2590          * Read super block and check the signature bytes only
   2591          */
   2592         bh = btrfs_read_dev_super(fs_devices->latest_bdev);
   2593         if (IS_ERR(bh)) {
   2594                 err = PTR_ERR(bh);
   2595                 goto fail_alloc;
   2596         }
   2597 
   2598         /*
   2599          * We want to check superblock checksum, the type is stored 
inside.
   2600          * Pass the whole disk block of size BTRFS_SUPER_INFO_SIZE (4k).
   2601          */
   2602         if (btrfs_check_super_csum(fs_info, bh->b_data)) {
   2603                 btrfs_err(fs_info, "superblock checksum mismatch");
   2604                 err = -EINVAL;
   2605                 brelse(bh);
   2606                 goto fail_alloc;
   2607         }
   2608 
   2609         /*
   2610          * super_copy is zeroed at allocation time and we never touch 
the
   2611          * following bytes up to INFO_SIZE, the checksum is calculated 
from
   2612          * the whole block of INFO_SIZE
   2613          */
   2614         memcpy(fs_info->super_copy, bh->b_data, 
sizeof(*fs_info->super_copy));
   2615         memcpy(fs_info->super_for_commit, fs_info->super_copy,
   2616                sizeof(*fs_info->super_for_commit));
   2617         brelse(bh);
   2618 
   2619         memcpy(fs_info->fsid, fs_info->super_copy->fsid, 
BTRFS_FSID_SIZE);
   2620 
   2621         ret = btrfs_check_super_valid(fs_info);
   2622         if (ret) {
   2623                 btrfs_err(fs_info, "superblock contains fatal errors");
   2624                 err = -EINVAL;
   2625                 goto fail_alloc;
   2626         }
   2627 
   2628         disk_super = fs_info->super_copy;
   2629         if (!btrfs_super_root(disk_super))
   2630                 goto fail_alloc;
   2631 
   2632         /* check FS state, whether FS is broken. */
   2633         if (btrfs_super_flags(disk_super) & BTRFS_SUPER_FLAG_ERROR)
   2634                 set_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state);
   2635 
   2636         /*
   2637          * run through our array of backup supers and setup
   2638          * our ring pointer to the oldest one
   2639          */
   2640         generation = btrfs_super_generation(disk_super);
   2641         find_oldest_super_backup(fs_info, generation);
   2642 
   2643         /*
   2644          * In the long term, we'll store the compression type in the 
super
   2645          * block, and it'll be used for per file compression control.
   2646          */
   2647         fs_info->compress_type = BTRFS_COMPRESS_ZLIB;
   2648 
   2649         ret = btrfs_parse_options(fs_info, options, sb->s_flags);
   2650         if (ret) {
   2651                 err = ret;
   2652                 goto fail_alloc;
   2653         }
   2654 
   2655         features = btrfs_super_incompat_flags(disk_super) &
   2656                 ~BTRFS_FEATURE_INCOMPAT_SUPP;
   2657         if (features) {
   2658                 btrfs_err(fs_info,
   2659                     "cannot mount because of unsupported optional features 
(%llx)",
   2660                     features);
   2661                 err = -EINVAL;
   2662                 goto fail_alloc;
   2663         }
   2664 
   2665         features = btrfs_super_incompat_flags(disk_super);
   2666         features |= BTRFS_FEATURE_INCOMPAT_MIXED_BACKREF;
   2667         if (fs_info->compress_type == BTRFS_COMPRESS_LZO)
   2668                 features |= BTRFS_FEATURE_INCOMPAT_COMPRESS_LZO;
   2669         else if (fs_info->compress_type == BTRFS_COMPRESS_ZSTD)
   2670                 features |= BTRFS_FEATURE_INCOMPAT_COMPRESS_ZSTD;
   2671 
   2672         if (features & BTRFS_FEATURE_INCOMPAT_SKINNY_METADATA)
   2673                 btrfs_info(fs_info, "has skinny extents");
   2674 
   2675         /*
   2676          * flag our filesystem as having big metadata blocks if
   2677          * they are bigger than the page size
   2678          */
   2679         if (btrfs_super_nodesize(disk_super) > PAGE_SIZE) {
   2680                 if (!(features & BTRFS_FEATURE_INCOMPAT_BIG_METADATA))
   2681                         btrfs_info(fs_info,
   2682                                 "flagging fs with big metadata 
feature");
   2683                 features |= BTRFS_FEATURE_INCOMPAT_BIG_METADATA;
   2684         }
   2685 
   2686         nodesize = btrfs_super_nodesize(disk_super);
   2687         sectorsize = btrfs_super_sectorsize(disk_super);
   2688         stripesize = sectorsize;
   2689         fs_info->dirty_metadata_batch = nodesize * (1 + 
ilog2(nr_cpu_ids));
   2690         fs_info->delalloc_batch = sectorsize * 512 * (1 + 
ilog2(nr_cpu_ids));
   2691 
   2692         /* Cache block sizes */
   2693         fs_info->nodesize = nodesize;
   2694         fs_info->sectorsize = sectorsize;
   2695         fs_info->stripesize = stripesize;
   2696 
   2697         /*
   2698          * mixed block groups end up with duplicate but slightly offset
   2699          * extent buffers for the same range.  It leads to corruptions
   2700          */
   2701         if ((features & BTRFS_FEATURE_INCOMPAT_MIXED_GROUPS) &&
   2702             (sectorsize != nodesize)) {
   2703                 btrfs_err(fs_info,
   2704 "unequal nodesize/sectorsize (%u != %u) are not allowed for mixed block 
groups",
   2705                         nodesize, sectorsize);
   2706                 goto fail_alloc;
   2707         }
   2708 
   2709         /*
   2710          * Needn't use the lock because there is no other task which 
will
   2711          * update the flag.
   2712          */
   2713         btrfs_set_super_incompat_flags(disk_super, features);
   2714 
   2715         features = btrfs_super_compat_ro_flags(disk_super) &
   2716                 ~BTRFS_FEATURE_COMPAT_RO_SUPP;
   2717         if (!sb_rdonly(sb) && features) {
   2718                 btrfs_err(fs_info,
   2719         "cannot mount read-write because of unsupported optional features 
(%llx)",
   2720                        features);
   2721                 err = -EINVAL;
   2722                 goto fail_alloc;
   2723         }
   2724 
   2725         max_active = fs_info->thread_pool_size;
   2726 
   2727         ret = btrfs_init_workqueues(fs_info, fs_devices);
   2728         if (ret) {
   2729                 err = ret;
   2730                 goto fail_sb_buffer;
   2731         }
   2732 
   2733         sb->s_bdi->congested_fn = btrfs_congested_fn;
   2734         sb->s_bdi->congested_data = fs_info;
   2735         sb->s_bdi->capabilities |= BDI_CAP_CGROUP_WRITEBACK;
   2736         sb->s_bdi->ra_pages = VM_MAX_READAHEAD * SZ_1K / PAGE_SIZE;
   2737         sb->s_bdi->ra_pages *= btrfs_super_num_devices(disk_super);
   2738         sb->s_bdi->ra_pages = max(sb->s_bdi->ra_pages, SZ_4M / 
PAGE_SIZE);
   2739 
   2740         sb->s_blocksize = sectorsize;
   2741         sb->s_blocksize_bits = blksize_bits(sectorsize);
   2742         memcpy(&sb->s_uuid, fs_info->fsid, BTRFS_FSID_SIZE);
   2743 
   2744         mutex_lock(&fs_info->chunk_mutex);
   2745         ret = btrfs_read_sys_array(fs_info);
   2746         mutex_unlock(&fs_info->chunk_mutex);
   2747         if (ret) {
   2748                 btrfs_err(fs_info, "failed to read the system array: 
%d", ret);
   2749                 goto fail_sb_buffer;
   2750         }
   2751 
   2752         generation = btrfs_super_chunk_root_generation(disk_super);
   2753 
   2754         __setup_root(chunk_root, fs_info, BTRFS_CHUNK_TREE_OBJECTID);
   2755 
   2756         chunk_root->node = read_tree_block(fs_info,
   2757                                            
btrfs_super_chunk_root(disk_super),
   2758                                            generation);
   2759         if (IS_ERR(chunk_root->node) ||
   2760             !extent_buffer_uptodate(chunk_root->node)) {
   2761                 btrfs_err(fs_info, "failed to read chunk root");
   2762                 if (!IS_ERR(chunk_root->node))
   2763                         free_extent_buffer(chunk_root->node);
   2764                 chunk_root->node = NULL;
   2765                 goto fail_tree_roots;
   2766         }
   2767         btrfs_set_root_node(&chunk_root->root_item, chunk_root->node);
   2768         chunk_root->commit_root = btrfs_root_node(chunk_root);
   2769 
   2770         read_extent_buffer(chunk_root->node, fs_info->chunk_tree_uuid,
   2771            btrfs_header_chunk_tree_uuid(chunk_root->node), 
BTRFS_UUID_SIZE);
   2772 
   2773         ret = btrfs_read_chunk_tree(fs_info);
   2774         if (ret) {
   2775                 btrfs_err(fs_info, "failed to read chunk tree: %d", 
ret);
   2776                 goto fail_tree_roots;
   2777         }
   2778 
   2779         /*
   2780          * keep the devid that is marked to be the target device for the
   2781          * dev_replace procedure
   2782          */
2783            btrfs_free_extra_devids(fs_devices, 0);
   2784 
   2785         if (!fs_devices->latest_bdev) {
   2786                 btrfs_err(fs_info, "failed to read devices");
   2787                 goto fail_tree_roots;
   2788         }
   2789 
   2790 retry_root_backup:
   2791         generation = btrfs_super_generation(disk_super);
   2792 
   2793         tree_root->node = read_tree_block(fs_info,
   2794                                           btrfs_super_root(disk_super),
   2795                                           generation);
   2796         if (IS_ERR(tree_root->node) ||
   2797             !extent_buffer_uptodate(tree_root->node)) {
   2798                 btrfs_warn(fs_info, "failed to read tree root");
   2799                 if (!IS_ERR(tree_root->node))
   2800                         free_extent_buffer(tree_root->node);
   2801                 tree_root->node = NULL;
   2802                 goto recovery_tree_root;
   2803         }
   2804 
   2805         btrfs_set_root_node(&tree_root->root_item, tree_root->node);
   2806         tree_root->commit_root = btrfs_root_node(tree_root);
   2807         btrfs_set_root_refs(&tree_root->root_item, 1);
   2808 
   2809         mutex_lock(&tree_root->objectid_mutex);
   2810         ret = btrfs_find_highest_objectid(tree_root,
   2811                                         &tree_root->highest_objectid);
   2812         if (ret) {
   2813                 mutex_unlock(&tree_root->objectid_mutex);
   2814                 goto recovery_tree_root;
   2815         }
   2816 
   2817         ASSERT(tree_root->highest_objectid <= BTRFS_LAST_FREE_OBJECTID);
   2818 
   2819         mutex_unlock(&tree_root->objectid_mutex);
   2820 
   2821         ret = btrfs_read_roots(fs_info);
   2822         if (ret)
   2823                 goto recovery_tree_root;
   2824 
   2825         fs_info->generation = generation;
   2826         fs_info->last_trans_committed = generation;
   2827 
   2828         ret = btrfs_recover_balance(fs_info);
   2829         if (ret) {
   2830                 btrfs_err(fs_info, "failed to recover balance: %d", 
ret);
   2831                 goto fail_block_groups;
   2832         }
   2833 
   2834         ret = btrfs_init_dev_stats(fs_info);
   2835         if (ret) {
   2836                 btrfs_err(fs_info, "failed to init dev_stats: %d", ret);
   2837                 goto fail_block_groups;
   2838         }
   2839 
   2840         ret = btrfs_init_dev_replace(fs_info);
   2841         if (ret) {
   2842                 btrfs_err(fs_info, "failed to init dev_replace: %d", 
ret);
   2843                 goto fail_block_groups;
   2844         }
   2845 
   2846         btrfs_free_extra_devids(fs_devices, 1);
   2847 
   2848         ret = btrfs_sysfs_add_fsid(fs_devices, NULL);
   2849         if (ret) {
   2850                 btrfs_err(fs_info, "failed to init sysfs fsid interface: 
%d",
   2851                                 ret);
   2852                 goto fail_block_groups;
   2853         }
   2854 
   2855         ret = btrfs_sysfs_add_device(fs_devices);
   2856         if (ret) {
   2857                 btrfs_err(fs_info, "failed to init sysfs device interface: 
%d",
   2858                                 ret);
   2859                 goto fail_fsdev_sysfs;
   2860         }
   2861 
   2862         ret = btrfs_sysfs_add_mounted(fs_info);
   2863         if (ret) {
   2864                 btrfs_err(fs_info, "failed to init sysfs interface: 
%d", ret);
   2865                 goto fail_fsdev_sysfs;
   2866         }
   2867 
   2868         ret = btrfs_init_space_info(fs_info);
   2869         if (ret) {
   2870                 btrfs_err(fs_info, "failed to initialize space info: 
%d", ret);
   2871                 goto fail_sysfs;
   2872         }
   2873 
   2874         ret = btrfs_read_block_groups(fs_info);
   2875         if (ret) {
   2876                 btrfs_err(fs_info, "failed to read block groups: %d", 
ret);
   2877                 goto fail_sysfs;
   2878         }
   2879 
   2880         if (!sb_rdonly(sb) && !btrfs_check_rw_degradable(fs_info)) {
   2881                 btrfs_warn(fs_info,
   2882                 "writeable mount is not allowed due to too many missing 
devices");
   2883                 goto fail_sysfs;
   2884         }
   2885 
   2886         fs_info->cleaner_kthread = kthread_run(cleaner_kthread, 
tree_root,
   2887                                                "btrfs-cleaner");
   2888         if (IS_ERR(fs_info->cleaner_kthread))
   2889                 goto fail_sysfs;
   2890 
   2891         fs_info->transaction_kthread = kthread_run(transaction_kthread,
   2892                                                    tree_root,
   2893                                                    "btrfs-transaction");
   2894         if (IS_ERR(fs_info->transaction_kthread))
   2895                 goto fail_cleaner;
   2896 
   2897         if (!btrfs_test_opt(fs_info, NOSSD) &&
   2898             !fs_info->fs_devices->rotating) {
   2899                 btrfs_set_and_info(fs_info, SSD, "enabling ssd 
optimizations");
   2900         }
   2901 
   2902         /*
   2903          * Mount does not set all options immediately, we can do it now 
and do
   2904          * not have to wait for transaction commit
   2905          */
   2906         btrfs_apply_pending_changes(fs_info);
   2907 

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to