Lines Matching refs:fs_info

121 static u64 get_features(struct btrfs_fs_info *fs_info,  in get_features()  argument
124 struct btrfs_super_block *disk_super = fs_info->super_copy; in get_features()
133 static void set_features(struct btrfs_fs_info *fs_info, in set_features() argument
136 struct btrfs_super_block *disk_super = fs_info->super_copy; in set_features()
180 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_attr_show() local
182 if (fs_info) { in btrfs_feature_attr_show()
183 u64 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_show()
196 struct btrfs_fs_info *fs_info; in btrfs_feature_attr_store() local
202 fs_info = to_fs_info(kobj); in btrfs_feature_attr_store()
203 if (!fs_info) in btrfs_feature_attr_store()
206 if (sb_rdonly(fs_info->sb)) in btrfs_feature_attr_store()
224 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
233 btrfs_info(fs_info, in btrfs_feature_attr_store()
239 btrfs_info(fs_info, "%s %s feature flag", in btrfs_feature_attr_store()
242 spin_lock(&fs_info->super_lock); in btrfs_feature_attr_store()
243 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
248 set_features(fs_info, fa->feature_set, features); in btrfs_feature_attr_store()
249 spin_unlock(&fs_info->super_lock); in btrfs_feature_attr_store()
254 set_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags); in btrfs_feature_attr_store()
255 wake_up_process(fs_info->transaction_kthread); in btrfs_feature_attr_store()
263 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_visible() local
266 if (fs_info) { in btrfs_feature_visible()
271 features = get_features(fs_info, fa->feature_set); in btrfs_feature_visible()
446 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discardable_bytes_show() local
449 atomic64_read(&fs_info->discard_ctl.discardable_bytes)); in btrfs_discardable_bytes_show()
457 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discardable_extents_show() local
460 atomic_read(&fs_info->discard_ctl.discardable_extents)); in btrfs_discardable_extents_show()
468 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_bitmap_bytes_show() local
471 fs_info->discard_ctl.discard_bitmap_bytes); in btrfs_discard_bitmap_bytes_show()
479 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_bytes_saved_show() local
482 atomic64_read(&fs_info->discard_ctl.discard_bytes_saved)); in btrfs_discard_bytes_saved_show()
490 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_extent_bytes_show() local
493 fs_info->discard_ctl.discard_extent_bytes); in btrfs_discard_extent_bytes_show()
501 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_iops_limit_show() local
504 READ_ONCE(fs_info->discard_ctl.iops_limit)); in btrfs_discard_iops_limit_show()
511 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_iops_limit_store() local
512 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl; in btrfs_discard_iops_limit_store()
532 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_kbps_limit_show() local
535 READ_ONCE(fs_info->discard_ctl.kbps_limit)); in btrfs_discard_kbps_limit_show()
542 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_kbps_limit_store() local
543 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl; in btrfs_discard_kbps_limit_store()
562 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_max_discard_size_show() local
565 READ_ONCE(fs_info->discard_ctl.max_discard_size)); in btrfs_discard_max_discard_size_show()
572 struct btrfs_fs_info *fs_info = discard_to_fs_info(kobj); in btrfs_discard_max_discard_size_store() local
573 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl; in btrfs_discard_max_discard_size_store()
646 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_size_show() local
647 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_size_show()
655 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_reserved_show() local
656 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_reserved_show()
742 struct btrfs_fs_info *fs_info = to_fs_info(get_btrfs_kobj(kobj)); in btrfs_chunk_size_store() local
749 if (!fs_info->fs_devices) in btrfs_chunk_size_store()
752 if (btrfs_is_zoned(fs_info)) in btrfs_chunk_size_store()
768 val = min(mult_perc(fs_info->fs_devices->total_rw_bytes, 10), val); in btrfs_chunk_size_store()
830 struct btrfs_fs_info *fs_info = to_fs_info(get_btrfs_kobj(kobj)); in btrfs_force_chunk_alloc_store() local
838 if (sb_rdonly(fs_info->sb)) in btrfs_force_chunk_alloc_store()
852 trans = btrfs_start_transaction(fs_info->tree_root, 0); in btrfs_force_chunk_alloc_store()
965 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_show() local
966 char *label = fs_info->super_copy->label; in btrfs_label_show()
969 spin_lock(&fs_info->super_lock); in btrfs_label_show()
971 spin_unlock(&fs_info->super_lock); in btrfs_label_show()
980 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_store() local
983 if (!fs_info) in btrfs_label_store()
986 if (sb_rdonly(fs_info->sb)) in btrfs_label_store()
998 spin_lock(&fs_info->super_lock); in btrfs_label_store()
999 memset(fs_info->super_copy->label, 0, BTRFS_LABEL_SIZE); in btrfs_label_store()
1000 memcpy(fs_info->super_copy->label, buf, p_len); in btrfs_label_store()
1001 spin_unlock(&fs_info->super_lock); in btrfs_label_store()
1006 set_bit(BTRFS_FS_NEED_TRANS_COMMIT, &fs_info->flags); in btrfs_label_store()
1007 wake_up_process(fs_info->transaction_kthread); in btrfs_label_store()
1016 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_nodesize_show() local
1018 return sysfs_emit(buf, "%u\n", fs_info->super_copy->nodesize); in btrfs_nodesize_show()
1026 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_sectorsize_show() local
1028 return sysfs_emit(buf, "%u\n", fs_info->super_copy->sectorsize); in btrfs_sectorsize_show()
1036 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_commit_stats_show() local
1043 fs_info->commit_stats.commit_count, in btrfs_commit_stats_show()
1044 div_u64(fs_info->commit_stats.last_commit_dur, NSEC_PER_MSEC), in btrfs_commit_stats_show()
1045 div_u64(fs_info->commit_stats.max_commit_dur, NSEC_PER_MSEC), in btrfs_commit_stats_show()
1046 div_u64(fs_info->commit_stats.total_commit_dur, NSEC_PER_MSEC)); in btrfs_commit_stats_show()
1053 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_commit_stats_store() local
1057 if (!fs_info) in btrfs_commit_stats_store()
1069 WRITE_ONCE(fs_info->commit_stats.max_commit_dur, 0); in btrfs_commit_stats_store()
1078 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_clone_alignment_show() local
1080 return sysfs_emit(buf, "%u\n", fs_info->super_copy->sectorsize); in btrfs_clone_alignment_show()
1088 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in quota_override_show() local
1091 quota_override = test_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); in quota_override_show()
1099 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in quota_override_store() local
1103 if (!fs_info) in quota_override_store()
1116 set_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); in quota_override_store()
1118 clear_bit(BTRFS_FS_QUOTA_OVERRIDE, &fs_info->flags); in quota_override_store()
1128 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_metadata_uuid_show() local
1130 return sysfs_emit(buf, "%pU\n", fs_info->fs_devices->metadata_uuid); in btrfs_metadata_uuid_show()
1138 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_checksum_show() local
1139 u16 csum_type = btrfs_super_csum_type(fs_info->super_copy); in btrfs_checksum_show()
1143 crypto_shash_driver_name(fs_info->csum_shash)); in btrfs_checksum_show()
1151 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_exclusive_operation_show() local
1154 switch (READ_ONCE(fs_info->exclusive_operation)) { in btrfs_exclusive_operation_show()
1190 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_generation_show() local
1192 return sysfs_emit(buf, "%llu\n", fs_info->generation); in btrfs_generation_show()
1232 btrfs_info(fs_devices->fs_info, in btrfs_read_policy_store()
1248 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_bg_reclaim_threshold_show() local
1250 return sysfs_emit(buf, "%d\n", READ_ONCE(fs_info->bg_reclaim_threshold)); in btrfs_bg_reclaim_threshold_show()
1257 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_bg_reclaim_threshold_store() local
1268 WRITE_ONCE(fs_info->bg_reclaim_threshold, thresh); in btrfs_bg_reclaim_threshold_store()
1320 return to_fs_devs(kobj)->fs_info; in to_fs_info()
1349 static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add) in addrm_unknown_feature_attrs() argument
1360 u64 features = get_features(fs_info, set); in addrm_unknown_feature_attrs()
1377 ret = sysfs_merge_group(&fs_info->fs_devices->fsid_kobj, in addrm_unknown_feature_attrs()
1382 sysfs_unmerge_group(&fs_info->fs_devices->fsid_kobj, in addrm_unknown_feature_attrs()
1440 void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info) in btrfs_sysfs_remove_mounted() argument
1442 struct kobject *fsid_kobj = &fs_info->fs_devices->fsid_kobj; in btrfs_sysfs_remove_mounted()
1446 if (fs_info->space_info_kobj) { in btrfs_sysfs_remove_mounted()
1447 sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_remove_mounted()
1448 kobject_del(fs_info->space_info_kobj); in btrfs_sysfs_remove_mounted()
1449 kobject_put(fs_info->space_info_kobj); in btrfs_sysfs_remove_mounted()
1451 if (fs_info->discard_kobj) { in btrfs_sysfs_remove_mounted()
1452 sysfs_remove_files(fs_info->discard_kobj, discard_attrs); in btrfs_sysfs_remove_mounted()
1453 kobject_del(fs_info->discard_kobj); in btrfs_sysfs_remove_mounted()
1454 kobject_put(fs_info->discard_kobj); in btrfs_sysfs_remove_mounted()
1457 if (fs_info->debug_kobj) { in btrfs_sysfs_remove_mounted()
1458 sysfs_remove_files(fs_info->debug_kobj, btrfs_debug_mount_attrs); in btrfs_sysfs_remove_mounted()
1459 kobject_del(fs_info->debug_kobj); in btrfs_sysfs_remove_mounted()
1460 kobject_put(fs_info->debug_kobj); in btrfs_sysfs_remove_mounted()
1463 addrm_unknown_feature_attrs(fs_info, false); in btrfs_sysfs_remove_mounted()
1466 btrfs_sysfs_remove_fs_devices(fs_info->fs_devices); in btrfs_sysfs_remove_mounted()
1550 struct btrfs_fs_info *fs_info = cache->fs_info; in btrfs_sysfs_add_block_group_type() local
1569 btrfs_warn(cache->fs_info, in btrfs_sysfs_add_block_group_type()
1604 btrfs_warn(fs_info, in btrfs_sysfs_add_block_group_type()
1653 int btrfs_sysfs_add_space_info_type(struct btrfs_fs_info *fs_info, in btrfs_sysfs_add_space_info_type() argument
1659 fs_info->space_info_kobj, "%s", in btrfs_sysfs_add_space_info_type()
1677 devices_kobj = device->fs_info->fs_devices->devices_kobj; in btrfs_sysfs_remove_device()
1851 devices_kobj = device->fs_info->fs_devices->devices_kobj; in btrfs_sysfs_add_device()
1852 devinfo_kobj = device->fs_info->fs_devices->devinfo_kobj; in btrfs_sysfs_add_device()
1863 btrfs_warn(device->fs_info, in btrfs_sysfs_add_device()
1875 btrfs_warn(device->fs_info, in btrfs_sysfs_add_device()
1934 btrfs_warn(fs_devices->fs_info, in btrfs_sysfs_update_sprout_fsid()
1945 btrfs_warn(device->fs_devices->fs_info, in btrfs_sysfs_update_devid()
1975 btrfs_err(fs_devs->fs_info, in btrfs_sysfs_add_fsid()
1984 btrfs_err(fs_devs->fs_info, in btrfs_sysfs_add_fsid()
1993 int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info) in btrfs_sysfs_add_mounted() argument
1996 struct btrfs_fs_devices *fs_devs = fs_info->fs_devices; in btrfs_sysfs_add_mounted()
2015 fs_info->debug_kobj = kobject_create_and_add("debug", fsid_kobj); in btrfs_sysfs_add_mounted()
2016 if (!fs_info->debug_kobj) { in btrfs_sysfs_add_mounted()
2021 error = sysfs_create_files(fs_info->debug_kobj, btrfs_debug_mount_attrs); in btrfs_sysfs_add_mounted()
2027 fs_info->discard_kobj = kobject_create_and_add("discard", fsid_kobj); in btrfs_sysfs_add_mounted()
2028 if (!fs_info->discard_kobj) { in btrfs_sysfs_add_mounted()
2033 error = sysfs_create_files(fs_info->discard_kobj, discard_attrs); in btrfs_sysfs_add_mounted()
2037 error = addrm_unknown_feature_attrs(fs_info, true); in btrfs_sysfs_add_mounted()
2041 error = sysfs_create_link(fsid_kobj, &fs_info->sb->s_bdi->dev->kobj, "bdi"); in btrfs_sysfs_add_mounted()
2045 fs_info->space_info_kobj = kobject_create_and_add("allocation", in btrfs_sysfs_add_mounted()
2047 if (!fs_info->space_info_kobj) { in btrfs_sysfs_add_mounted()
2052 error = sysfs_create_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_add_mounted()
2058 btrfs_sysfs_remove_mounted(fs_info); in btrfs_sysfs_add_mounted()
2066 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_enabled_show() local
2069 spin_lock(&fs_info->qgroup_lock); in qgroup_enabled_show()
2070 enabled = fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_ON; in qgroup_enabled_show()
2071 spin_unlock(&fs_info->qgroup_lock); in qgroup_enabled_show()
2081 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_inconsistent_show() local
2084 spin_lock(&fs_info->qgroup_lock); in qgroup_inconsistent_show()
2085 inconsistent = (fs_info->qgroup_flags & BTRFS_QGROUP_STATUS_FLAG_INCONSISTENT); in qgroup_inconsistent_show()
2086 spin_unlock(&fs_info->qgroup_lock); in qgroup_inconsistent_show()
2096 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_drop_subtree_thres_show() local
2099 spin_lock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_show()
2100 result = fs_info->qgroup_drop_subtree_thres; in qgroup_drop_subtree_thres_show()
2101 spin_unlock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_show()
2110 struct btrfs_fs_info *fs_info = to_fs_info(qgroups_kobj->parent); in qgroup_drop_subtree_thres_store() local
2121 spin_lock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_store()
2122 fs_info->qgroup_drop_subtree_thres = new_thres; in qgroup_drop_subtree_thres_store()
2123 spin_unlock(&fs_info->qgroup_lock); in qgroup_drop_subtree_thres_store()
2164 struct btrfs_fs_info *fs_info = qgroup_kobj_to_fs_info(qgroup_kobj); \
2167 return btrfs_show_u64(&qgroup->_member, &fs_info->qgroup_lock, buf); \
2176 struct btrfs_fs_info *fs_info = qgroup_kobj_to_fs_info(qgroup_kobj); \
2180 &fs_info->qgroup_lock, buf); \
2224 int btrfs_sysfs_add_one_qgroup(struct btrfs_fs_info *fs_info, in btrfs_sysfs_add_one_qgroup() argument
2227 struct kobject *qgroups_kobj = fs_info->qgroups_kobj; in btrfs_sysfs_add_one_qgroup()
2230 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_add_one_qgroup()
2246 void btrfs_sysfs_del_qgroups(struct btrfs_fs_info *fs_info) in btrfs_sysfs_del_qgroups() argument
2251 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_del_qgroups()
2255 &fs_info->qgroup_tree, node) in btrfs_sysfs_del_qgroups()
2256 btrfs_sysfs_del_one_qgroup(fs_info, qgroup); in btrfs_sysfs_del_qgroups()
2257 if (fs_info->qgroups_kobj) { in btrfs_sysfs_del_qgroups()
2258 kobject_del(fs_info->qgroups_kobj); in btrfs_sysfs_del_qgroups()
2259 kobject_put(fs_info->qgroups_kobj); in btrfs_sysfs_del_qgroups()
2260 fs_info->qgroups_kobj = NULL; in btrfs_sysfs_del_qgroups()
2265 int btrfs_sysfs_add_qgroups(struct btrfs_fs_info *fs_info) in btrfs_sysfs_add_qgroups() argument
2267 struct kobject *fsid_kobj = &fs_info->fs_devices->fsid_kobj; in btrfs_sysfs_add_qgroups()
2272 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_add_qgroups()
2276 if (fs_info->qgroups_kobj) in btrfs_sysfs_add_qgroups()
2279 fs_info->qgroups_kobj = kzalloc(sizeof(struct kobject), GFP_KERNEL); in btrfs_sysfs_add_qgroups()
2280 if (!fs_info->qgroups_kobj) in btrfs_sysfs_add_qgroups()
2283 ret = kobject_init_and_add(fs_info->qgroups_kobj, &qgroups_ktype, in btrfs_sysfs_add_qgroups()
2289 &fs_info->qgroup_tree, node) { in btrfs_sysfs_add_qgroups()
2290 ret = btrfs_sysfs_add_one_qgroup(fs_info, qgroup); in btrfs_sysfs_add_qgroups()
2297 btrfs_sysfs_del_qgroups(fs_info); in btrfs_sysfs_add_qgroups()
2301 void btrfs_sysfs_del_one_qgroup(struct btrfs_fs_info *fs_info, in btrfs_sysfs_del_one_qgroup() argument
2304 if (test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state)) in btrfs_sysfs_del_one_qgroup()
2317 void btrfs_sysfs_feature_update(struct btrfs_fs_info *fs_info) in btrfs_sysfs_feature_update() argument
2322 if (!fs_info) in btrfs_sysfs_feature_update()
2325 fsid_kobj = &fs_info->fs_devices->fsid_kobj; in btrfs_sysfs_feature_update()
2331 btrfs_warn(fs_info, in btrfs_sysfs_feature_update()
2333 fs_info->fs_devices->fsid, ret); in btrfs_sysfs_feature_update()