Lines Matching refs:fs_info

100 static void save_error_info(struct btrfs_fs_info *fs_info)  in save_error_info()  argument
106 set_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state); in save_error_info()
110 static void btrfs_handle_error(struct btrfs_fs_info *fs_info) in btrfs_handle_error() argument
112 struct super_block *sb = fs_info->sb; in btrfs_handle_error()
117 if (test_bit(BTRFS_FS_STATE_ERROR, &fs_info->fs_state)) { in btrfs_handle_error()
119 btrfs_info(fs_info, "forced readonly"); in btrfs_handle_error()
138 void __btrfs_std_error(struct btrfs_fs_info *fs_info, const char *function, in __btrfs_std_error() argument
141 struct super_block *sb = fs_info->sb; in __btrfs_std_error()
174 save_error_info(fs_info); in __btrfs_std_error()
176 btrfs_handle_error(fs_info); in __btrfs_std_error()
191 void btrfs_printk(const struct btrfs_fs_info *fs_info, const char *fmt, ...) in btrfs_printk() argument
193 struct super_block *sb = fs_info->sb; in btrfs_printk()
246 btrfs_warn(root->fs_info, in __btrfs_abort_transaction()
253 wake_up(&root->fs_info->transaction_wait); in __btrfs_abort_transaction()
254 wake_up(&root->fs_info->transaction_blocked_wait); in __btrfs_abort_transaction()
255 __btrfs_std_error(root->fs_info, function, line, errno, NULL); in __btrfs_abort_transaction()
262 void __btrfs_panic(struct btrfs_fs_info *fs_info, const char *function, in __btrfs_panic() argument
270 if (fs_info) in __btrfs_panic()
271 s_id = fs_info->sb->s_id; in __btrfs_panic()
277 if (fs_info && (fs_info->mount_opt & BTRFS_MOUNT_PANIC_ON_FATAL_ERROR)) in __btrfs_panic()
281 btrfs_crit(fs_info, "panic in %s:%d: %pV (errno=%d %s)", in __btrfs_panic()
376 struct btrfs_fs_info *info = root->fs_info; in btrfs_parse_options()
385 cache_gen = btrfs_super_cache_generation(root->fs_info->super_copy); in btrfs_parse_options()
410 btrfs_info(root->fs_info, "allowing degraded mounts"); in btrfs_parse_options()
429 btrfs_info(root->fs_info, "setting datasum, datacow enabled"); in btrfs_parse_options()
431 btrfs_info(root->fs_info, "setting datasum"); in btrfs_parse_options()
440 btrfs_info(root->fs_info, in btrfs_parse_options()
443 btrfs_info(root->fs_info, "setting nodatacow"); in btrfs_parse_options()
492 btrfs_info(root->fs_info, in btrfs_parse_options()
548 btrfs_info(root->fs_info, "max_inline at %llu", in btrfs_parse_options()
562 btrfs_info(root->fs_info, "allocations start at %llu", in btrfs_parse_options()
571 root->fs_info->sb->s_flags |= MS_POSIXACL; in btrfs_parse_options()
574 btrfs_err(root->fs_info, in btrfs_parse_options()
580 root->fs_info->sb->s_flags &= ~MS_POSIXACL; in btrfs_parse_options()
604 btrfs_info(root->fs_info, "metadata ratio %d", in btrfs_parse_options()
660 btrfs_info(root->fs_info, "enabling auto recovery"); in btrfs_parse_options()
668 btrfs_info(root->fs_info, in btrfs_parse_options()
675 btrfs_info(root->fs_info, "enabling check integrity"); in btrfs_parse_options()
684 btrfs_info(root->fs_info, "check_integrity_print_mask 0x%x", in btrfs_parse_options()
695 btrfs_err(root->fs_info, in btrfs_parse_options()
716 btrfs_err(root->fs_info, "invalid commit interval"); in btrfs_parse_options()
722 btrfs_warn(root->fs_info, "excessive commit interval %d", in btrfs_parse_options()
727 btrfs_info(root->fs_info, "using default commit interval %ds", in btrfs_parse_options()
734 btrfs_info(root->fs_info, "fragmenting all space"); in btrfs_parse_options()
739 btrfs_info(root->fs_info, "fragmenting metadata"); in btrfs_parse_options()
744 btrfs_info(root->fs_info, "fragmenting data"); in btrfs_parse_options()
749 btrfs_info(root->fs_info, "unrecognized mount option '%s'", p); in btrfs_parse_options()
758 btrfs_info(root->fs_info, "disk space caching is enabled"); in btrfs_parse_options()
846 static char *get_subvol_name_from_objectid(struct btrfs_fs_info *fs_info, in get_subvol_name_from_objectid() argument
849 struct btrfs_root *root = fs_info->tree_root; in get_subvol_name_from_objectid()
918 fs_root = btrfs_read_fs_root_no_name(fs_info, &key); in get_subvol_name_from_objectid()
982 static int get_default_subvol_objectid(struct btrfs_fs_info *fs_info, u64 *objectid) in get_default_subvol_objectid() argument
984 struct btrfs_root *root = fs_info->tree_root; in get_default_subvol_objectid()
1000 dir_id = btrfs_super_root_dir(fs_info->super_copy); in get_default_subvol_objectid()
1028 struct btrfs_fs_info *fs_info = btrfs_sb(sb); in btrfs_fill_super() local
1053 inode = btrfs_iget(sb, &key, fs_info->fs_root, NULL); in btrfs_fill_super()
1071 close_ctree(fs_info->tree_root); in btrfs_fill_super()
1078 struct btrfs_fs_info *fs_info = btrfs_sb(sb); in btrfs_sync_fs() local
1079 struct btrfs_root *root = fs_info->tree_root; in btrfs_sync_fs()
1084 filemap_flush(fs_info->btree_inode->i_mapping); in btrfs_sync_fs()
1088 btrfs_wait_ordered_roots(fs_info, -1); in btrfs_sync_fs()
1098 if (fs_info->pending_changes == 0) in btrfs_sync_fs()
1161 if (!(root->fs_info->sb->s_flags & MS_POSIXACL)) in btrfs_show_options()
1215 struct btrfs_fs_info *fs_info = btrfs_sb(s); in btrfs_test_super() local
1217 return fs_info->fs_devices == p->fs_devices; in btrfs_test_super()
1394 static int setup_security_options(struct btrfs_fs_info *fs_info, in setup_security_options() argument
1409 if (!fs_info->security_opts.num_mnt_opts) { in setup_security_options()
1411 memcpy(&fs_info->security_opts, sec_opts, sizeof(*sec_opts)); in setup_security_options()
1437 struct btrfs_fs_info *fs_info = NULL; in btrfs_mount() local
1478 fs_info = kzalloc(sizeof(struct btrfs_fs_info), GFP_NOFS); in btrfs_mount()
1479 if (!fs_info) { in btrfs_mount()
1484 fs_info->fs_devices = fs_devices; in btrfs_mount()
1486 fs_info->super_copy = kzalloc(BTRFS_SUPER_INFO_SIZE, GFP_NOFS); in btrfs_mount()
1487 fs_info->super_for_commit = kzalloc(BTRFS_SUPER_INFO_SIZE, GFP_NOFS); in btrfs_mount()
1488 security_init_mnt_opts(&fs_info->security_opts); in btrfs_mount()
1489 if (!fs_info->super_copy || !fs_info->super_for_commit) { in btrfs_mount()
1505 fs_info); in btrfs_mount()
1513 free_fs_info(fs_info); in btrfs_mount()
1529 fs_info = btrfs_sb(s); in btrfs_mount()
1530 error = setup_security_options(fs_info, s, &new_sec_opts); in btrfs_mount()
1541 free_fs_info(fs_info); in btrfs_mount()
1547 static void btrfs_resize_thread_pool(struct btrfs_fs_info *fs_info, in btrfs_resize_thread_pool() argument
1553 fs_info->thread_pool_size = new_pool_size; in btrfs_resize_thread_pool()
1555 btrfs_info(fs_info, "resize thread pool %d -> %d", in btrfs_resize_thread_pool()
1558 btrfs_workqueue_set_max(fs_info->workers, new_pool_size); in btrfs_resize_thread_pool()
1559 btrfs_workqueue_set_max(fs_info->delalloc_workers, new_pool_size); in btrfs_resize_thread_pool()
1560 btrfs_workqueue_set_max(fs_info->submit_workers, new_pool_size); in btrfs_resize_thread_pool()
1561 btrfs_workqueue_set_max(fs_info->caching_workers, new_pool_size); in btrfs_resize_thread_pool()
1562 btrfs_workqueue_set_max(fs_info->endio_workers, new_pool_size); in btrfs_resize_thread_pool()
1563 btrfs_workqueue_set_max(fs_info->endio_meta_workers, new_pool_size); in btrfs_resize_thread_pool()
1564 btrfs_workqueue_set_max(fs_info->endio_meta_write_workers, in btrfs_resize_thread_pool()
1566 btrfs_workqueue_set_max(fs_info->endio_write_workers, new_pool_size); in btrfs_resize_thread_pool()
1567 btrfs_workqueue_set_max(fs_info->endio_freespace_worker, new_pool_size); in btrfs_resize_thread_pool()
1568 btrfs_workqueue_set_max(fs_info->delayed_workers, new_pool_size); in btrfs_resize_thread_pool()
1569 btrfs_workqueue_set_max(fs_info->readahead_workers, new_pool_size); in btrfs_resize_thread_pool()
1570 btrfs_workqueue_set_max(fs_info->scrub_wr_completion_workers, in btrfs_resize_thread_pool()
1574 static inline void btrfs_remount_prepare(struct btrfs_fs_info *fs_info) in btrfs_remount_prepare() argument
1576 set_bit(BTRFS_FS_STATE_REMOUNTING, &fs_info->fs_state); in btrfs_remount_prepare()
1579 static inline void btrfs_remount_begin(struct btrfs_fs_info *fs_info, in btrfs_remount_begin() argument
1583 (!btrfs_raw_test_opt(fs_info->mount_opt, AUTO_DEFRAG) || in btrfs_remount_begin()
1586 wait_event(fs_info->transaction_wait, in btrfs_remount_begin()
1587 (atomic_read(&fs_info->defrag_running) == 0)); in btrfs_remount_begin()
1589 sync_filesystem(fs_info->sb); in btrfs_remount_begin()
1593 static inline void btrfs_remount_cleanup(struct btrfs_fs_info *fs_info, in btrfs_remount_cleanup() argument
1601 (!btrfs_raw_test_opt(fs_info->mount_opt, AUTO_DEFRAG) || in btrfs_remount_cleanup()
1602 (fs_info->sb->s_flags & MS_RDONLY))) { in btrfs_remount_cleanup()
1603 btrfs_cleanup_defrag_inodes(fs_info); in btrfs_remount_cleanup()
1606 clear_bit(BTRFS_FS_STATE_REMOUNTING, &fs_info->fs_state); in btrfs_remount_cleanup()
1611 struct btrfs_fs_info *fs_info = btrfs_sb(sb); in btrfs_remount() local
1612 struct btrfs_root *root = fs_info->tree_root; in btrfs_remount()
1614 unsigned long old_opts = fs_info->mount_opt; in btrfs_remount()
1615 unsigned long old_compress_type = fs_info->compress_type; in btrfs_remount()
1616 u64 old_max_inline = fs_info->max_inline; in btrfs_remount()
1617 u64 old_alloc_start = fs_info->alloc_start; in btrfs_remount()
1618 int old_thread_pool_size = fs_info->thread_pool_size; in btrfs_remount()
1619 unsigned int old_metadata_ratio = fs_info->metadata_ratio; in btrfs_remount()
1623 btrfs_remount_prepare(fs_info); in btrfs_remount()
1632 ret = setup_security_options(fs_info, sb, in btrfs_remount()
1646 btrfs_remount_begin(fs_info, old_opts, *flags); in btrfs_remount()
1647 btrfs_resize_thread_pool(fs_info, in btrfs_remount()
1648 fs_info->thread_pool_size, old_thread_pool_size); in btrfs_remount()
1658 cancel_work_sync(&fs_info->async_reclaim_work); in btrfs_remount()
1661 down(&fs_info->uuid_tree_rescan_sem); in btrfs_remount()
1663 up(&fs_info->uuid_tree_rescan_sem); in btrfs_remount()
1674 btrfs_delete_unused_bgs(fs_info); in btrfs_remount()
1676 btrfs_dev_replace_suspend_for_unmount(fs_info); in btrfs_remount()
1677 btrfs_scrub_cancel(fs_info); in btrfs_remount()
1678 btrfs_pause_balance(fs_info); in btrfs_remount()
1684 if (test_bit(BTRFS_FS_STATE_ERROR, &root->fs_info->fs_state)) { in btrfs_remount()
1685 btrfs_err(fs_info, in btrfs_remount()
1690 if (fs_info->fs_devices->rw_devices == 0) { in btrfs_remount()
1695 if (fs_info->fs_devices->missing_devices > in btrfs_remount()
1696 fs_info->num_tolerated_disk_barrier_failures && in btrfs_remount()
1698 btrfs_warn(fs_info, in btrfs_remount()
1704 if (btrfs_super_log_root(fs_info->super_copy) != 0) { in btrfs_remount()
1709 ret = btrfs_cleanup_fs_roots(fs_info); in btrfs_remount()
1714 mutex_lock(&fs_info->cleaner_mutex); in btrfs_remount()
1716 mutex_unlock(&fs_info->cleaner_mutex); in btrfs_remount()
1720 ret = btrfs_resume_balance_async(fs_info); in btrfs_remount()
1724 ret = btrfs_resume_dev_replace_async(fs_info); in btrfs_remount()
1726 btrfs_warn(fs_info, "failed to resume dev_replace"); in btrfs_remount()
1730 if (!fs_info->uuid_root) { in btrfs_remount()
1731 btrfs_info(fs_info, "creating UUID tree"); in btrfs_remount()
1732 ret = btrfs_create_uuid_tree(fs_info); in btrfs_remount()
1734 btrfs_warn(fs_info, "failed to create the UUID tree %d", ret); in btrfs_remount()
1741 wake_up_process(fs_info->transaction_kthread); in btrfs_remount()
1742 btrfs_remount_cleanup(fs_info, old_opts); in btrfs_remount()
1750 fs_info->mount_opt = old_opts; in btrfs_remount()
1751 fs_info->compress_type = old_compress_type; in btrfs_remount()
1752 fs_info->max_inline = old_max_inline; in btrfs_remount()
1753 mutex_lock(&fs_info->chunk_mutex); in btrfs_remount()
1754 fs_info->alloc_start = old_alloc_start; in btrfs_remount()
1755 mutex_unlock(&fs_info->chunk_mutex); in btrfs_remount()
1756 btrfs_resize_thread_pool(fs_info, in btrfs_remount()
1757 old_thread_pool_size, fs_info->thread_pool_size); in btrfs_remount()
1758 fs_info->metadata_ratio = old_metadata_ratio; in btrfs_remount()
1759 btrfs_remount_cleanup(fs_info, old_opts); in btrfs_remount()
1795 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_calc_avail_data_space() local
1797 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in btrfs_calc_avail_data_space()
1812 nr_devices = fs_info->fs_devices->open_devices; in btrfs_calc_avail_data_space()
1815 nr_devices = fs_info->fs_devices->open_devices; in btrfs_calc_avail_data_space()
1846 if (fs_info->alloc_start) in btrfs_calc_avail_data_space()
1871 if (fs_info->alloc_start && in btrfs_calc_avail_data_space()
1872 fs_info->alloc_start + BTRFS_STRIPE_LEN <= in btrfs_calc_avail_data_space()
1875 skip_space = max(fs_info->alloc_start, skip_space); in btrfs_calc_avail_data_space()
1916 if (fs_info->alloc_start) in btrfs_calc_avail_data_space()
1966 struct btrfs_fs_info *fs_info = btrfs_sb(dentry->d_sb); in btrfs_statfs() local
1967 struct btrfs_super_block *disk_super = fs_info->super_copy; in btrfs_statfs()
1968 struct list_head *head = &fs_info->space_info; in btrfs_statfs()
1974 __be32 *fsid = (__be32 *)fs_info->fsid; in btrfs_statfs()
1976 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in btrfs_statfs()
2022 ret = btrfs_calc_avail_data_space(fs_info->tree_root, &total_free_data); in btrfs_statfs()
2064 struct btrfs_fs_info *fs_info = btrfs_sb(sb); in btrfs_kill_super() local
2066 free_fs_info(fs_info); in btrfs_kill_super()
2141 struct btrfs_fs_info *fs_info = btrfs_sb(root->d_sb); in btrfs_show_devname() local
2147 mutex_lock(&fs_info->fs_devices->device_list_mutex); in btrfs_show_devname()
2148 cur_devices = fs_info->fs_devices; in btrfs_show_devname()
2170 mutex_unlock(&fs_info->fs_devices->device_list_mutex); in btrfs_show_devname()