linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Anand Jain <anand.jain@oracle.com>
To: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] btrfs: rename btrfs_close_extra_device to btrfs_free_extra_devids
Date: Thu, 1 Mar 2018 14:16:47 +0800	[thread overview]
Message-ID: <db1fb0e5-1bf4-84c9-6b97-cc6fbd9dab14@oracle.com> (raw)
In-Reply-To: <201803011216.UCOGFQ7a%fengguang.wu@intel.com>



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
> 

  reply	other threads:[~2018-03-01  6:15 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27  4:32 [PATCH] btrfs: rename btrfs_close_extra_device to btrfs_free_extra_devids Anand Jain
2018-02-27  4:41 ` [PATCH v2] " Anand Jain
2018-03-05 21:28   ` David Sterba
2018-03-01  4:42 ` [PATCH] " kbuild test robot
2018-03-01  6:16   ` Anand Jain [this message]
2018-03-03 11:03   ` Anand Jain

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=db1fb0e5-1bf4-84c9-6b97-cc6fbd9dab14@oracle.com \
    --to=anand.jain@oracle.com \
    --cc=kbuild-all@01.org \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=lkp@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).