Lines Matching refs:fs_info
38 static u64 get_features(struct btrfs_fs_info *fs_info, in get_features() argument
41 struct btrfs_super_block *disk_super = fs_info->super_copy; in get_features()
50 static void set_features(struct btrfs_fs_info *fs_info, in set_features() argument
53 struct btrfs_super_block *disk_super = fs_info->super_copy; in set_features()
97 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_attr_show() local
99 if (fs_info) { in btrfs_feature_attr_show()
100 u64 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_show()
113 struct btrfs_fs_info *fs_info; in btrfs_feature_attr_store() local
119 fs_info = to_fs_info(kobj); in btrfs_feature_attr_store()
120 if (!fs_info) in btrfs_feature_attr_store()
138 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
147 btrfs_info(fs_info, in btrfs_feature_attr_store()
153 btrfs_info(fs_info, "%s %s feature flag", in btrfs_feature_attr_store()
156 spin_lock(&fs_info->super_lock); in btrfs_feature_attr_store()
157 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
162 set_features(fs_info, fa->feature_set, features); in btrfs_feature_attr_store()
163 spin_unlock(&fs_info->super_lock); in btrfs_feature_attr_store()
168 btrfs_set_pending(fs_info, COMMIT); in btrfs_feature_attr_store()
169 wake_up_process(fs_info->transaction_kthread); in btrfs_feature_attr_store()
177 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_visible() local
180 if (fs_info) { in btrfs_feature_visible()
185 features = get_features(fs_info, fa->feature_set); in btrfs_feature_visible()
239 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_size_show() local
240 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_size_show()
248 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_reserved_show() local
249 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_reserved_show()
363 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_show() local
364 char *label = fs_info->super_copy->label; in btrfs_label_show()
372 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_store() local
375 if (fs_info->sb->s_flags & MS_RDONLY) in btrfs_label_store()
387 spin_lock(&fs_info->super_lock); in btrfs_label_store()
388 memset(fs_info->super_copy->label, 0, BTRFS_LABEL_SIZE); in btrfs_label_store()
389 memcpy(fs_info->super_copy->label, buf, p_len); in btrfs_label_store()
390 spin_unlock(&fs_info->super_lock); in btrfs_label_store()
395 btrfs_set_pending(fs_info, COMMIT); in btrfs_label_store()
396 wake_up_process(fs_info->transaction_kthread); in btrfs_label_store()
405 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_nodesize_show() local
407 return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->nodesize); in btrfs_nodesize_show()
415 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_sectorsize_show() local
417 return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->sectorsize); in btrfs_sectorsize_show()
425 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_clone_alignment_show() local
427 return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->sectorsize); in btrfs_clone_alignment_show()
464 return to_fs_devs(kobj)->fs_info; in to_fs_info()
477 static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add) in addrm_unknown_feature_attrs() argument
488 u64 features = get_features(fs_info, set); in addrm_unknown_feature_attrs()
505 ret = sysfs_merge_group(&fs_info->fs_devices->fsid_kobj, in addrm_unknown_feature_attrs()
510 sysfs_unmerge_group(&fs_info->fs_devices->fsid_kobj, in addrm_unknown_feature_attrs()
548 void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info) in btrfs_sysfs_remove_mounted() argument
550 btrfs_reset_fs_info_ptr(fs_info); in btrfs_sysfs_remove_mounted()
552 if (fs_info->space_info_kobj) { in btrfs_sysfs_remove_mounted()
553 sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_remove_mounted()
554 kobject_del(fs_info->space_info_kobj); in btrfs_sysfs_remove_mounted()
555 kobject_put(fs_info->space_info_kobj); in btrfs_sysfs_remove_mounted()
557 addrm_unknown_feature_attrs(fs_info, false); in btrfs_sysfs_remove_mounted()
558 sysfs_remove_group(&fs_info->fs_devices->fsid_kobj, &btrfs_feature_attr_group); in btrfs_sysfs_remove_mounted()
559 sysfs_remove_files(&fs_info->fs_devices->fsid_kobj, btrfs_attrs); in btrfs_sysfs_remove_mounted()
560 btrfs_sysfs_rm_device_link(fs_info->fs_devices, NULL); in btrfs_sysfs_remove_mounted()
739 int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info) in btrfs_sysfs_add_mounted() argument
742 struct btrfs_fs_devices *fs_devs = fs_info->fs_devices; in btrfs_sysfs_add_mounted()
745 btrfs_set_fs_info_ptr(fs_info); in btrfs_sysfs_add_mounted()
762 error = addrm_unknown_feature_attrs(fs_info, true); in btrfs_sysfs_add_mounted()
766 fs_info->space_info_kobj = kobject_create_and_add("allocation", in btrfs_sysfs_add_mounted()
768 if (!fs_info->space_info_kobj) { in btrfs_sysfs_add_mounted()
773 error = sysfs_create_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_add_mounted()
779 btrfs_sysfs_remove_mounted(fs_info); in btrfs_sysfs_add_mounted()