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 >>):

   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

Attachment: .config.gz
Description: application/gzip

Reply via email to