Lines Matching refs:fs_info
37 static u64 get_features(struct btrfs_fs_info *fs_info, in get_features() argument
40 struct btrfs_super_block *disk_super = fs_info->super_copy; in get_features()
49 static void set_features(struct btrfs_fs_info *fs_info, in set_features() argument
52 struct btrfs_super_block *disk_super = fs_info->super_copy; in set_features()
96 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_attr_show() local
98 if (fs_info) { in btrfs_feature_attr_show()
99 u64 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_show()
112 struct btrfs_fs_info *fs_info; in btrfs_feature_attr_store() local
118 fs_info = to_fs_info(kobj); in btrfs_feature_attr_store()
119 if (!fs_info) in btrfs_feature_attr_store()
137 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
146 btrfs_info(fs_info, in btrfs_feature_attr_store()
152 btrfs_info(fs_info, "%s %s feature flag", in btrfs_feature_attr_store()
155 spin_lock(&fs_info->super_lock); in btrfs_feature_attr_store()
156 features = get_features(fs_info, fa->feature_set); in btrfs_feature_attr_store()
161 set_features(fs_info, fa->feature_set, features); in btrfs_feature_attr_store()
162 spin_unlock(&fs_info->super_lock); in btrfs_feature_attr_store()
167 btrfs_set_pending(fs_info, COMMIT); in btrfs_feature_attr_store()
168 wake_up_process(fs_info->transaction_kthread); in btrfs_feature_attr_store()
176 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_feature_visible() local
179 if (fs_info) { in btrfs_feature_visible()
184 features = get_features(fs_info, fa->feature_set); in btrfs_feature_visible()
238 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_size_show() local
239 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_size_show()
247 struct btrfs_fs_info *fs_info = to_fs_info(kobj->parent); in global_rsv_reserved_show() local
248 struct btrfs_block_rsv *block_rsv = &fs_info->global_block_rsv; in global_rsv_reserved_show()
362 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_show() local
363 char *label = fs_info->super_copy->label; in btrfs_label_show()
371 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_label_store() local
374 if (fs_info->sb->s_flags & MS_RDONLY) in btrfs_label_store()
386 spin_lock(&fs_info->super_lock); in btrfs_label_store()
387 memset(fs_info->super_copy->label, 0, BTRFS_LABEL_SIZE); in btrfs_label_store()
388 memcpy(fs_info->super_copy->label, buf, p_len); in btrfs_label_store()
389 spin_unlock(&fs_info->super_lock); in btrfs_label_store()
394 btrfs_set_pending(fs_info, COMMIT); in btrfs_label_store()
395 wake_up_process(fs_info->transaction_kthread); in btrfs_label_store()
404 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_nodesize_show() local
406 return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->nodesize); in btrfs_nodesize_show()
414 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_sectorsize_show() local
416 return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->sectorsize); in btrfs_sectorsize_show()
424 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_clone_alignment_show() local
426 return snprintf(buf, PAGE_SIZE, "%u\n", fs_info->super_copy->sectorsize); in btrfs_clone_alignment_show()
441 struct btrfs_fs_info *fs_info = to_fs_info(kobj); in btrfs_release_super_kobj() local
442 complete(&fs_info->kobj_unregister); in btrfs_release_super_kobj()
468 static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add) in addrm_unknown_feature_attrs() argument
479 u64 features = get_features(fs_info, set); in addrm_unknown_feature_attrs()
496 ret = sysfs_merge_group(&fs_info->super_kobj, in addrm_unknown_feature_attrs()
501 sysfs_unmerge_group(&fs_info->super_kobj, in addrm_unknown_feature_attrs()
509 static void __btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info) in __btrfs_sysfs_remove_one() argument
511 kobject_del(&fs_info->super_kobj); in __btrfs_sysfs_remove_one()
512 kobject_put(&fs_info->super_kobj); in __btrfs_sysfs_remove_one()
513 wait_for_completion(&fs_info->kobj_unregister); in __btrfs_sysfs_remove_one()
516 void btrfs_sysfs_remove_one(struct btrfs_fs_info *fs_info) in btrfs_sysfs_remove_one() argument
518 if (fs_info->space_info_kobj) { in btrfs_sysfs_remove_one()
519 sysfs_remove_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_remove_one()
520 kobject_del(fs_info->space_info_kobj); in btrfs_sysfs_remove_one()
521 kobject_put(fs_info->space_info_kobj); in btrfs_sysfs_remove_one()
523 kobject_del(fs_info->device_dir_kobj); in btrfs_sysfs_remove_one()
524 kobject_put(fs_info->device_dir_kobj); in btrfs_sysfs_remove_one()
525 addrm_unknown_feature_attrs(fs_info, false); in btrfs_sysfs_remove_one()
526 sysfs_remove_group(&fs_info->super_kobj, &btrfs_feature_attr_group); in btrfs_sysfs_remove_one()
527 __btrfs_sysfs_remove_one(fs_info); in btrfs_sysfs_remove_one()
605 int btrfs_kobj_rm_device(struct btrfs_fs_info *fs_info, in btrfs_kobj_rm_device() argument
611 if (!fs_info->device_dir_kobj) in btrfs_kobj_rm_device()
618 sysfs_remove_link(fs_info->device_dir_kobj, in btrfs_kobj_rm_device()
625 int btrfs_kobj_add_device(struct btrfs_fs_info *fs_info, in btrfs_kobj_add_device() argument
629 struct btrfs_fs_devices *fs_devices = fs_info->fs_devices; in btrfs_kobj_add_device()
632 if (!fs_info->device_dir_kobj) in btrfs_kobj_add_device()
633 fs_info->device_dir_kobj = kobject_create_and_add("devices", in btrfs_kobj_add_device()
634 &fs_info->super_kobj); in btrfs_kobj_add_device()
636 if (!fs_info->device_dir_kobj) in btrfs_kobj_add_device()
652 error = sysfs_create_link(fs_info->device_dir_kobj, in btrfs_kobj_add_device()
670 int btrfs_sysfs_add_one(struct btrfs_fs_info *fs_info) in btrfs_sysfs_add_one() argument
674 init_completion(&fs_info->kobj_unregister); in btrfs_sysfs_add_one()
675 fs_info->super_kobj.kset = btrfs_kset; in btrfs_sysfs_add_one()
676 error = kobject_init_and_add(&fs_info->super_kobj, &btrfs_ktype, NULL, in btrfs_sysfs_add_one()
677 "%pU", fs_info->fsid); in btrfs_sysfs_add_one()
681 error = sysfs_create_group(&fs_info->super_kobj, in btrfs_sysfs_add_one()
684 __btrfs_sysfs_remove_one(fs_info); in btrfs_sysfs_add_one()
688 error = addrm_unknown_feature_attrs(fs_info, true); in btrfs_sysfs_add_one()
692 error = btrfs_kobj_add_device(fs_info, NULL); in btrfs_sysfs_add_one()
696 fs_info->space_info_kobj = kobject_create_and_add("allocation", in btrfs_sysfs_add_one()
697 &fs_info->super_kobj); in btrfs_sysfs_add_one()
698 if (!fs_info->space_info_kobj) { in btrfs_sysfs_add_one()
703 error = sysfs_create_files(fs_info->space_info_kobj, allocation_attrs); in btrfs_sysfs_add_one()
709 btrfs_sysfs_remove_one(fs_info); in btrfs_sysfs_add_one()