mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-01 18:52:02 +00:00
e51f52e1d3
This update allows configuring the `raid1-balancing` methods using a modprobe parameter when experimental mode CONFIG_BTRFS_EXPERIMENTAL is enabled. Examples: - Set the RAID1 balancing method to round-robin with a custom `min_contiguous_read` of 192k: $ modprobe btrfs raid1-balancing=round-robin:196608 - Set the round-robin balancing method with the default `min_contiguous_read` of 256k: $ modprobe btrfs raid1-balancing=round-robin - Set the `devid` balancing method, defaulting to the latest device: $ modprobe btrfs raid1-balancing=devid Signed-off-by: Anand Jain <anand.jain@oracle.com> Signed-off-by: David Sterba <dsterba@suse.com>
57 lines
2.0 KiB
C
57 lines
2.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
#ifndef BTRFS_SYSFS_H
|
|
#define BTRFS_SYSFS_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/compiler_types.h>
|
|
#include <linux/kobject.h>
|
|
|
|
struct btrfs_fs_info;
|
|
struct btrfs_device;
|
|
struct btrfs_fs_devices;
|
|
struct btrfs_block_group;
|
|
struct btrfs_space_info;
|
|
struct btrfs_qgroup;
|
|
|
|
enum btrfs_feature_set {
|
|
FEAT_COMPAT,
|
|
FEAT_COMPAT_RO,
|
|
FEAT_INCOMPAT,
|
|
FEAT_MAX
|
|
};
|
|
|
|
char *btrfs_printable_features(enum btrfs_feature_set set, u64 flags);
|
|
const char *btrfs_feature_set_name(enum btrfs_feature_set set);
|
|
int btrfs_sysfs_add_device(struct btrfs_device *device);
|
|
void btrfs_sysfs_remove_device(struct btrfs_device *device);
|
|
int btrfs_sysfs_add_fsid(struct btrfs_fs_devices *fs_devs);
|
|
void btrfs_sysfs_remove_fsid(struct btrfs_fs_devices *fs_devs);
|
|
void btrfs_sysfs_update_sprout_fsid(struct btrfs_fs_devices *fs_devices);
|
|
void btrfs_sysfs_feature_update(struct btrfs_fs_info *fs_info);
|
|
void btrfs_kobject_uevent(struct block_device *bdev, enum kobject_action action);
|
|
|
|
int __init btrfs_init_sysfs(void);
|
|
void __cold btrfs_exit_sysfs(void);
|
|
int btrfs_sysfs_add_mounted(struct btrfs_fs_info *fs_info);
|
|
void btrfs_sysfs_remove_mounted(struct btrfs_fs_info *fs_info);
|
|
void btrfs_sysfs_add_block_group_type(struct btrfs_block_group *cache);
|
|
int btrfs_sysfs_add_space_info_type(struct btrfs_fs_info *fs_info,
|
|
struct btrfs_space_info *space_info);
|
|
void btrfs_sysfs_remove_space_info(struct btrfs_space_info *space_info);
|
|
void btrfs_sysfs_update_devid(struct btrfs_device *device);
|
|
|
|
int btrfs_sysfs_add_one_qgroup(struct btrfs_fs_info *fs_info,
|
|
struct btrfs_qgroup *qgroup);
|
|
void btrfs_sysfs_del_qgroups(struct btrfs_fs_info *fs_info);
|
|
int btrfs_sysfs_add_qgroups(struct btrfs_fs_info *fs_info);
|
|
void btrfs_sysfs_del_one_qgroup(struct btrfs_fs_info *fs_info,
|
|
struct btrfs_qgroup *qgroup);
|
|
int btrfs_read_policy_to_enum(const char *str, s64 *value);
|
|
#ifdef CONFIG_BTRFS_EXPERIMENTAL
|
|
int __init btrfs_raid1_balancing_init(void);
|
|
char *btrfs_get_raid1_balancing(void);
|
|
#endif
|
|
|
|
#endif
|