Lines Matching refs:fs_info

118 static u64 get_features(struct btrfs_fs_info *fs_info,  in get_features()  argument
121 struct btrfs_super_block *disk_super = fs_info->super_copy; in get_features()
130 static void set_features(struct btrfs_fs_info *fs_info, in set_features() argument
133 struct btrfs_super_block *disk_super = fs_info->super_copy; in set_features()
177 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_attr_show() local
179 if (fs_info) { in btrfs_feature_attr_show()
180 u64 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_show()
193 struct btrfs_fs_info *fs_info; in btrfs_feature_attr_store() local
199 fs_info = to_fs_info(kobj); in btrfs_feature_attr_store()
200 if (!fs_info) in btrfs_feature_attr_store()
203 if (sb_rdonly(fs_info->sb)) in btrfs_feature_attr_store()
221 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
230 btrfs_info(fs_info, in btrfs_feature_attr_store()
236 btrfs_info(fs_info, "%s %s feature flag", in btrfs_feature_attr_store()
239 spin_lock(&fs_info->super_lock); in btrfs_feature_attr_store()
240 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
245 set_features(fs_info, fa->feature_set, features); in btrfs_feature_attr_store()
246 spin_unlock(&fs_info->super_lock); in btrfs_feature_attr_store()
251 btrfs_set_pending(fs_info, COMMIT); in btrfs_feature_attr_store()
252 wake_up_process(fs_info->transaction_kthread); in btrfs_feature_attr_store()
260 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_visible() local
263 if (fs_info) { in btrfs_feature_visible()
268 features = get_features(fs_info, fa->feature_set); in btrfs_feature_visible()
443 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discardable_bytes_show() local
446 atomic64_read(&fs_info->discard_ctl.discardable_bytes)); in btrfs_discardable_bytes_show()
454 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discardable_extents_show() local
457 atomic_read(&fs_info->discard_ctl.discardable_extents)); in btrfs_discardable_extents_show()
465 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_bitmap_bytes_show() local
468 fs_info->discard_ctl.discard_bitmap_bytes); in btrfs_discard_bitmap_bytes_show()
476 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_bytes_saved_show() local
479 atomic64_read(&fs_info->discard_ctl.discard_bytes_saved)); in btrfs_discard_bytes_saved_show()
487 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_extent_bytes_show() local
490 fs_info->discard_ctl.discard_extent_bytes); in btrfs_discard_extent_bytes_show()
498 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_iops_limit_show() local
501 READ_ONCE(fs_info->discard_ctl.iops_limit)); in btrfs_discard_iops_limit_show()
508 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_iops_limit_store() local
509 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl; in btrfs_discard_iops_limit_store()
529 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_kbps_limit_show() local
532 READ_ONCE(fs_info->discard_ctl.kbps_limit)); in btrfs_discard_kbps_limit_show()
539 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_kbps_limit_store() local
540 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl; in btrfs_discard_kbps_limit_store()
559 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_max_discard_size_show() local
562 READ_ONCE(fs_info->discard_ctl.max_discard_size)); in btrfs_discard_max_discard_size_show()
569 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_max_discard_size_store() local
570 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl; in btrfs_discard_max_discard_size_store()
643 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_size_show() local
644 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_size_show()
652 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_reserved_show() local
653 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_reserved_show()
739 struct btrfs_fs_info *fs_info = to_fs_info(get_btrfs_kobj(kobj)); in btrfs_chunk_size_store() local
746 if (!fs_info->fs_devices) in btrfs_chunk_size_store()
749 if (btrfs_is_zoned(fs_info)) in btrfs_chunk_size_store()
765 val = min(div_factor(fs_info->fs_devices->total_rw_bytes, 1), val); in btrfs_chunk_size_store()
788 struct btrfs_fs_info *fs_info = to_fs_info(get_btrfs_kobj(kobj)); in btrfs_force_chunk_alloc_store() local
796 if (sb_rdonly(fs_info->sb)) in btrfs_force_chunk_alloc_store()
810 trans = btrfs_start_transaction(fs_info->tree_root, 0); in btrfs_force_chunk_alloc_store()
921 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_show() local
922 char *label = fs_info->super_copy->label; in btrfs_label_show()
925 spin_lock(&fs_info->super_lock); in btrfs_label_show()
927 spin_unlock(&fs_info->super_lock); in btrfs_label_show()
936 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_store() local
939 if (!fs_info) in btrfs_label_store()
942 if (sb_rdonly(fs_info->sb)) in btrfs_label_store()
954 spin_lock(&fs_info->super_lock); in btrfs_label_store()
955 memset(fs_info->super_copy->label, 0, BTRFS_LABEL_SIZE); in btrfs_label_store()
956 memcpy(fs_info->super_copy->label, buf, p_len); in btrfs_label_store()
957 spin_unlock(&fs_info->super_lock); in btrfs_label_store()
962 btrfs_set_pending(fs_info, COMMIT); in btrfs_label_store()
963 wake_up_process(fs_info->transaction_kthread); in btrfs_label_store()
972 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_nodesize_show() local
974 return sysfs_emit(buf, "%u\n", fs_info->super_copy->nodesize); in btrfs_nodesize_show()
982 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_sectorsize_show() local
984 return sysfs_emit(buf, "%u\n", fs_info->super_copy->sectorsize); in btrfs_sectorsize_show()
992 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_commit_stats_show() local
999 fs_info->commit_stats.commit_count, in btrfs_commit_stats_show()
1000 div_u64(fs_info->commit_stats.last_commit_dur, NSEC_PER_MSEC), in btrfs_commit_stats_show()
1001 div_u64(fs_info->commit_stats.max_commit_dur, NSEC_PER_MSEC), in btrfs_commit_stats_show()
1002 div_u64(fs_info->commit_stats.total_commit_dur, NSEC_PER_MSEC)); in btrfs_commit_stats_show()
1009 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_commit_stats_store() local
1013 if (!fs_info) in btrfs_commit_stats_store()
1025 WRITE_ONCE(fs_info->commit_stats.max_commit_dur, 0); in btrfs_commit_stats_store()
1034 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_clone_alignment_show() local
1036 return sysfs_emit(buf, "%u\n", fs_info->super_copy->sectorsize); in btrfs_clone_alignment_show()
1044 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in quota_override_show() local
1047 quota_override = test_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); in quota_override_show()
1055 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in quota_override_store() local
1059 if (!fs_info) in quota_override_store()
1072 set_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); in quota_override_store()
1074 clear_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); in quota_override_store()
1084 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_metadata_uuid_show() local
1086 return sysfs_emit(buf, "%pU\n", fs_info->fs_devices->metadata_uuid); in btrfs_metadata_uuid_show()
1094 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_checksum_show() local
1095 u16 csum_type = btrfs_super_csum_type(fs_info->super_copy); in btrfs_checksum_show()
1099 crypto_shash_driver_name(fs_info->csum_shash)); in btrfs_checksum_show()
1107 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_exclusive_operation_show() local
1110 switch (READ_ONCE(fs_info->exclusive_operation)) { in btrfs_exclusive_operation_show()
1146 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_generation_show() local
1148 return sysfs_emit(buf, "%llu\n", fs_info->generation); in btrfs_generation_show()
1188 btrfs_info(fs_devices->fs_info, in btrfs_read_policy_store()
1204 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_bg_reclaim_threshold_show() local
1206 return sysfs_emit(buf, "%d\n", READ_ONCE(fs_info->bg_reclaim_threshold)); in btrfs_bg_reclaim_threshold_show()
1213 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_bg_reclaim_threshold_store() local
1224 WRITE_ONCE(fs_info->bg_reclaim_threshold, thresh); in btrfs_bg_reclaim_threshold_store()
1276 return to_fs_devs(kobj)->fs_info; in to_fs_info()
1305 static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add) in addrm_unknown_feature_attrs() argument
1316 u64 features = get_features(fs_info, set); in addrm_unknown_feature_attrs()
1333 ret = sysfs_merge_group(&fs_info->fs_devices->fsid_kobj, in addrm_unknown_feature_attrs()
1338 sysfs_unmerge_group(&fs_info->fs_devices->fsid_kobj, in addrm_unknown_feature_attrs()
1396 void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info) in btrfs_sysfs_remove_mounted() argument
1398 struct kobject *fsid_kobj = &fs_info->fs_devices->fsid_kobj; in btrfs_sysfs_remove_mounted()
1402 if (fs_info->space_info_kobj) { in btrfs_sysfs_remove_mounted()
1403 sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_remove_mounted()
1404 kobject_del(fs_info->space_info_kobj); in btrfs_sysfs_remove_mounted()
1405 kobject_put(fs_info->space_info_kobj); in btrfs_sysfs_remove_mounted()
1407 if (fs_info->discard_kobj) { in btrfs_sysfs_remove_mounted()
1408 sysfs_remove_files(fs_info->discard_kobj, discard_attrs); in btrfs_sysfs_remove_mounted()
1409 kobject_del(fs_info->discard_kobj); in btrfs_sysfs_remove_mounted()
1410 kobject_put(fs_info->discard_kobj); in btrfs_sysfs_remove_mounted()
1413 if (fs_info->debug_kobj) { in btrfs_sysfs_remove_mounted()
1414 sysfs_remove_files(fs_info->debug_kobj, btrfs_debug_mount_attrs); in btrfs_sysfs_remove_mounted()
1415 kobject_del(fs_info->debug_kobj); in btrfs_sysfs_remove_mounted()
1416 kobject_put(fs_info->debug_kobj); in btrfs_sysfs_remove_mounted()
1419 addrm_unknown_feature_attrs(fs_info, false); in btrfs_sysfs_remove_mounted()
1422 btrfs_sysfs_remove_fs_devices(fs_info->fs_devices); in btrfs_sysfs_remove_mounted()
1506 struct btrfs_fs_info *fs_info = cache->fs_info; in btrfs_sysfs_add_block_group_type() local
1525 btrfs_warn(cache->fs_info, in btrfs_sysfs_add_block_group_type()
1560 btrfs_warn(fs_info, in btrfs_sysfs_add_block_group_type()
1609 int btrfs_sysfs_add_space_info_type(struct btrfs_fs_info *fs_info, in btrfs_sysfs_add_space_info_type() argument
1615 fs_info->space_info_kobj, "%s", in btrfs_sysfs_add_space_info_type()
1633 devices_kobj = device->fs_info->fs_devices->devices_kobj; in btrfs_sysfs_remove_device()
1807 devices_kobj = device->fs_info->fs_devices->devices_kobj; in btrfs_sysfs_add_device()
1808 devinfo_kobj = device->fs_info->fs_devices->devinfo_kobj; in btrfs_sysfs_add_device()
1819 btrfs_warn(device->fs_info, in btrfs_sysfs_add_device()
1831 btrfs_warn(device->fs_info, in btrfs_sysfs_add_device()
1890 btrfs_warn(fs_devices->fs_info, in btrfs_sysfs_update_sprout_fsid()
1901 btrfs_warn(device->fs_devices->fs_info, in btrfs_sysfs_update_devid()
1931 btrfs_err(fs_devs->fs_info, in btrfs_sysfs_add_fsid()
1940 btrfs_err(fs_devs->fs_info, in btrfs_sysfs_add_fsid()
1949 int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info) in btrfs_sysfs_add_mounted() argument
1952 struct btrfs_fs_devices *fs_devs = fs_info->fs_devices; in btrfs_sysfs_add_mounted()
1971 fs_info->debug_kobj = kobject_create_and_add("debug", fsid_kobj); in btrfs_sysfs_add_mounted()
1972 if (!fs_info->debug_kobj) { in btrfs_sysfs_add_mounted()
1977 error = sysfs_create_files(fs_info->debug_kobj, btrfs_debug_mount_attrs); in btrfs_sysfs_add_mounted()
1983 fs_info->discard_kobj = kobject_create_and_add("discard", fsid_kobj); in btrfs_sysfs_add_mounted()
1984 if (!fs_info->discard_kobj) { in btrfs_sysfs_add_mounted()
1989 error = sysfs_create_files(fs_info->discard_kobj, discard_attrs); in btrfs_sysfs_add_mounted()
1993 error = addrm_unknown_feature_attrs(fs_info, true); in btrfs_sysfs_add_mounted()
1997 error = sysfs_create_link(fsid_kobj, &fs_info->sb->s_bdi->dev->kobj, "bdi"); in btrfs_sysfs_add_mounted()
2001 fs_info->space_info_kobj = kobject_create_and_add("allocation", in btrfs_sysfs_add_mounted()
2003 if (!fs_info->space_info_kobj) { in btrfs_sysfs_add_mounted()
2008 error = sysfs_create_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_add_mounted()
2014 btrfs_sysfs_remove_mounted(fs_info); in btrfs_sysfs_add_mounted()
2022 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_enabled_show() local
2025 spin_lock(&fs_info->qgroup_lock); in qgroup_enabled_show()
2026 enabled = fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON; in qgroup_enabled_show()
2027 spin_unlock(&fs_info->qgroup_lock); in qgroup_enabled_show()
2037 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_inconsistent_show() local
2040 spin_lock(&fs_info->qgroup_lock); in qgroup_inconsistent_show()
2041 inconsistent = (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT); in qgroup_inconsistent_show()
2042 spin_unlock(&fs_info->qgroup_lock); in qgroup_inconsistent_show()
2052 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_drop_subtree_thres_show() local
2055 spin_lock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_show()
2056 result = fs_info->qgroup_drop_subtree_thres; in qgroup_drop_subtree_thres_show()
2057 spin_unlock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_show()
2066 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_drop_subtree_thres_store() local
2077 spin_lock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_store()
2078 fs_info->qgroup_drop_subtree_thres = new_thres; in qgroup_drop_subtree_thres_store()
2079 spin_unlock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_store()
2120 struct btrfs_fs_info *fs_info = qgroup_kobj_to_fs_info(qgroup_kobj); \
2123 return btrfs_show_u64(&qgroup->_member, &fs_info->qgroup_lock, buf); \
2132 struct btrfs_fs_info *fs_info = qgroup_kobj_to_fs_info(qgroup_kobj); \
2136 &fs_info->qgroup_lock, buf); \
2180 int btrfs_sysfs_add_one_qgroup(struct btrfs_fs_info *fs_info, in btrfs_sysfs_add_one_qgroup() argument
2183 struct kobject *qgroups_kobj = fs_info->qgroups_kobj; in btrfs_sysfs_add_one_qgroup()
2186 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_add_one_qgroup()
2202 void btrfs_sysfs_del_qgroups(struct btrfs_fs_info *fs_info) in btrfs_sysfs_del_qgroups() argument
2207 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_del_qgroups()
2211 &fs_info->qgroup_tree, node) in btrfs_sysfs_del_qgroups()
2212 btrfs_sysfs_del_one_qgroup(fs_info, qgroup); in btrfs_sysfs_del_qgroups()
2213 if (fs_info->qgroups_kobj) { in btrfs_sysfs_del_qgroups()
2214 kobject_del(fs_info->qgroups_kobj); in btrfs_sysfs_del_qgroups()
2215 kobject_put(fs_info->qgroups_kobj); in btrfs_sysfs_del_qgroups()
2216 fs_info->qgroups_kobj = NULL; in btrfs_sysfs_del_qgroups()
2221 int btrfs_sysfs_add_qgroups(struct btrfs_fs_info *fs_info) in btrfs_sysfs_add_qgroups() argument
2223 struct kobject *fsid_kobj = &fs_info->fs_devices->fsid_kobj; in btrfs_sysfs_add_qgroups()
2228 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_add_qgroups()
2232 if (fs_info->qgroups_kobj) in btrfs_sysfs_add_qgroups()
2235 fs_info->qgroups_kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL); in btrfs_sysfs_add_qgroups()
2236 if (!fs_info->qgroups_kobj) in btrfs_sysfs_add_qgroups()
2239 ret = kobject_init_and_add(fs_info->qgroups_kobj, &qgroups_ktype, in btrfs_sysfs_add_qgroups()
2245 &fs_info->qgroup_tree, node) { in btrfs_sysfs_add_qgroups()
2246 ret = btrfs_sysfs_add_one_qgroup(fs_info, qgroup); in btrfs_sysfs_add_qgroups()
2253 btrfs_sysfs_del_qgroups(fs_info); in btrfs_sysfs_add_qgroups()
2257 void btrfs_sysfs_del_one_qgroup(struct btrfs_fs_info *fs_info, in btrfs_sysfs_del_one_qgroup() argument
2260 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_del_one_qgroup()
2273 void btrfs_sysfs_feature_update(struct btrfs_fs_info *fs_info, in btrfs_sysfs_feature_update() argument
2281 if (!fs_info) in btrfs_sysfs_feature_update()
2288 features = get_features(fs_info, set); in btrfs_sysfs_feature_update()
2291 fs_devs = fs_info->fs_devices; in btrfs_sysfs_feature_update()