btrfs_device
struct btrfs_device *dev)
static void btrfs_check_read_bio(struct btrfs_bio *bbio, struct btrfs_device *dev)
static void btrfs_log_dev_io_error(const struct bio *bio, struct btrfs_device *dev)
struct btrfs_device *dev = bio->bi_private;
static void btrfs_submit_dev_bio(struct btrfs_device *dev, struct bio *bio)
const struct btrfs_device *device, u64 chunk_offset,
struct btrfs_device *device;
bool btrfs_data_csum_ok(struct btrfs_bio *bbio, struct btrfs_device *dev,
struct btrfs_device *tgt_device = NULL;
struct btrfs_device *src_device = NULL;
struct btrfs_device *srcdev,
struct btrfs_device **device_out)
struct btrfs_device *device;
struct btrfs_device *src_dev)
bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
struct btrfs_device *tgt_device = NULL;
struct btrfs_device *src_device = NULL;
static int btrfs_set_target_alloc_state(struct btrfs_device *srcdev,
struct btrfs_device *tgtdev)
struct btrfs_device *srcdev,
struct btrfs_device *tgtdev)
struct btrfs_device *tgt_device;
struct btrfs_device *src_device;
struct btrfs_device;
bool btrfs_finish_block_group_to_copy(struct btrfs_device *srcdev,
struct btrfs_device *device = bio->bi_private;
static int write_dev_supers(struct btrfs_device *device,
static int wait_dev_supers(struct btrfs_device *device, int max_mirrors)
static void write_dev_flush(struct btrfs_device *device)
static bool wait_dev_flush(struct btrfs_device *device)
struct btrfs_device *dev;
struct btrfs_device *dev;
struct btrfs_device *dev, *tmp;
struct btrfs_device;
struct btrfs_device *dev = stripe->dev;
static int btrfs_trim_free_extents_throttle(struct btrfs_device *device,
struct btrfs_device *dev;
struct btrfs_device *working_dev = NULL;
struct btrfs_device *srcdev;
struct btrfs_device *tgtdev;
struct btrfs_device;
struct btrfs_device *device = NULL;
bool btrfs_data_csum_ok(struct btrfs_bio *bbio, struct btrfs_device *dev,
struct btrfs_device *device;
struct btrfs_device *dev;
struct btrfs_device *device;
struct btrfs_device *device = NULL;
struct btrfs_device *scrub_dev,
struct btrfs_device;
struct btrfs_device *scrub_dev,
struct btrfs_device *dev = NULL;
static void scrub_throttle_dev_io(struct scrub_ctx *sctx, struct btrfs_device *device,
struct btrfs_device *dev;
struct btrfs_device *dev, u64 physical,
struct btrfs_device *dev, int mirror_num,
struct btrfs_device *scrub_dev,
struct btrfs_device *wr_tgtdev;
struct btrfs_device *scrub_dev,
struct btrfs_device *device,
struct btrfs_device *device,
struct btrfs_device *scrub_dev,
struct btrfs_device *scrub_dev,
struct btrfs_device *scrub_dev, u64 start, u64 end)
static int scrub_one_super(struct scrub_ctx *sctx, struct btrfs_device *dev,
struct btrfs_device *scrub_dev)
struct btrfs_device *dev;
struct btrfs_device *dev;
int btrfs_scrub_cancel_dev(struct btrfs_device *dev)
struct btrfs_device *dev;
static void scrub_print_common_warning(const char *errstr, struct btrfs_device *dev,
int btrfs_scrub_cancel_dev(struct btrfs_device *dev);
struct btrfs_device;
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device = NULL;
static int check_dev_super(struct btrfs_device *dev)
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device;
void btrfs_sysfs_remove_device(struct btrfs_device *device)
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
struct btrfs_device *device = container_of(kobj, struct btrfs_device,
int btrfs_sysfs_add_device(struct btrfs_device *device)
struct btrfs_device *device;
void btrfs_sysfs_update_devid(struct btrfs_device *device)
struct btrfs_device;
int btrfs_sysfs_add_device(struct btrfs_device *device);
void btrfs_sysfs_remove_device(struct btrfs_device *device);
void btrfs_sysfs_update_devid(struct btrfs_device *device);
static void btrfs_free_dummy_device(struct btrfs_device *dev)
struct btrfs_device *dev, *tmp;
struct btrfs_device *btrfs_alloc_dummy_device(struct btrfs_fs_info *fs_info)
struct btrfs_device *dev;
struct btrfs_device *btrfs_alloc_dummy_device(struct btrfs_fs_info *fs_info);
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *dev = btrfs_alloc_dummy_device(fs_info);
struct btrfs_device *dev;
static struct btrfs_device *btrfs_device_by_devid(struct btrfs_fs_devices *fs_devices,
struct btrfs_device *dev;
struct btrfs_device *device;
struct btrfs_device *orig_dev;
struct btrfs_device **latest_dev)
struct btrfs_device *device, *next;
struct btrfs_device *latest_dev = NULL;
static void btrfs_close_bdev(struct btrfs_device *device)
static void btrfs_close_one_device(struct btrfs_device *device)
struct btrfs_device *device, *tmp;
struct btrfs_device *device;
struct btrfs_device *latest_dev = NULL;
struct btrfs_device *tmp_device;
const struct btrfs_device *dev1, *dev2;
dev1 = list_entry(a, struct btrfs_device, dev_list);
dev2 = list_entry(b, struct btrfs_device, dev_list);
struct btrfs_device *device;
struct btrfs_device *btrfs_scan_one_device(const char *path,
struct btrfs_device *device = NULL;
bool btrfs_first_pending_extent(struct btrfs_device *device, u64 start, u64 len,
bool btrfs_find_hole_in_pending_extents(struct btrfs_device *device, u64 *start,
static u64 dev_extent_search_start(struct btrfs_device *device)
static bool dev_extent_hole_check_zoned(struct btrfs_device *device,
static bool dev_extent_hole_check(struct btrfs_device *device, u64 *hole_start,
static int find_free_dev_extent(struct btrfs_device *device, u64 num_bytes,
struct btrfs_device *device,
struct btrfs_device *device)
struct btrfs_device *device)
static struct btrfs_device * btrfs_find_next_active_device(
struct btrfs_fs_devices *fs_devs, struct btrfs_device *device)
struct btrfs_device *next_device;
void __cold btrfs_assign_next_active_device(struct btrfs_device *device,
struct btrfs_device *next_device)
void btrfs_scratch_superblocks(struct btrfs_fs_info *fs_info, struct btrfs_device *device)
struct btrfs_device *device;
void btrfs_rm_dev_replace_remove_srcdev(struct btrfs_device *srcdev)
void btrfs_rm_dev_replace_free_srcdev(struct btrfs_device *srcdev)
void btrfs_destroy_dev_replace_tgtdev(struct btrfs_device *tgtdev)
struct btrfs_device *btrfs_find_device_by_devspec(
struct btrfs_device *device;
static void btrfs_dev_stat_print_on_load(struct btrfs_device *device);
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device;
int btrfs_update_device(struct btrfs_trans_handle *trans, struct btrfs_device *device)
struct btrfs_device *device, u64 new_size)
struct btrfs_device *device = map->stripes[i].dev;
static void btrfs_free_device(struct btrfs_device *device)
struct btrfs_device *device;
struct btrfs_device, dev_list);
int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
static int btrfs_free_stale_devices(dev_t devt, struct btrfs_device *skip_device)
struct btrfs_device *device, *tmp_device;
struct btrfs_device *device;
struct btrfs_device *device = stripe->dev;
struct btrfs_device *device = stripe->dev;
struct btrfs_device *dev = map->stripes[i].dev;
struct btrfs_device *device = map->stripes[i].dev;
struct btrfs_device *device = map->stripes[i].dev;
struct btrfs_device *device;
const struct btrfs_device *device = map->stripes[index].dev;
struct btrfs_device *device = map->stripes[first].dev;
struct btrfs_device *srcdev;
struct btrfs_device *device, blk_mode_t flags,
const struct btrfs_device *device)
struct btrfs_device *btrfs_find_device(const struct btrfs_fs_devices *fs_devices,
struct btrfs_device *device;
static struct btrfs_device *add_missing_dev(struct btrfs_fs_devices *fs_devices,
struct btrfs_device *device;
struct btrfs_device *btrfs_alloc_device(struct btrfs_fs_info *fs_info,
struct btrfs_device *dev;
static struct btrfs_device *handle_missing_device(struct btrfs_fs_info *fs_info,
struct btrfs_device *dev;
static bool is_same_device(struct btrfs_device *device, const char *new_path)
struct btrfs_device *device)
struct btrfs_device *device;
struct btrfs_device *failing_dev)
struct btrfs_device *dev = map->stripes[i].dev;
static noinline struct btrfs_device *device_list_add(const char *path,
struct btrfs_device *device;
struct btrfs_device *device;
static int btrfs_device_init_dev_stats(struct btrfs_device *device,
struct btrfs_device *device;
struct btrfs_device *device)
struct btrfs_device *device;
void btrfs_dev_stat_inc_and_print(struct btrfs_device *dev, int index)
static void btrfs_dev_stat_print_on_load(struct btrfs_device *dev)
struct btrfs_device *dev;
struct btrfs_device *curr, *next;
struct btrfs_device *dev;
struct btrfs_device *dev;
btrfs_device_get_##name(const struct btrfs_device *dev) \
btrfs_device_set_##name(struct btrfs_device *dev, u64 size) \
btrfs_device_get_##name(const struct btrfs_device *dev) \
btrfs_device_set_##name(struct btrfs_device *dev, u64 size) \
btrfs_device_get_##name(const struct btrfs_device *dev) \
btrfs_device_set_##name(struct btrfs_device *dev, u64 size) \
struct btrfs_device *latest_dev;
struct btrfs_device *dev;
struct btrfs_device *dev;
struct btrfs_device *dev;
struct btrfs_device *btrfs_scan_one_device(const char *path, bool mount_arg_dev);
void btrfs_assign_next_active_device(struct btrfs_device *device,
struct btrfs_device *this_dev);
struct btrfs_device *btrfs_find_device_by_devspec(struct btrfs_fs_info *fs_info,
struct btrfs_device *btrfs_alloc_device(struct btrfs_fs_info *fs_info,
struct btrfs_device *device, u64 new_size);
struct btrfs_device *btrfs_find_device(const struct btrfs_fs_devices *fs_devices,
int btrfs_shrink_device(struct btrfs_device *device, u64 new_size);
void btrfs_dev_stat_inc_and_print(struct btrfs_device *dev, int index);
void btrfs_rm_dev_replace_remove_srcdev(struct btrfs_device *srcdev);
void btrfs_rm_dev_replace_free_srcdev(struct btrfs_device *srcdev);
void btrfs_destroy_dev_replace_tgtdev(struct btrfs_device *tgtdev);
static inline void btrfs_dev_stat_inc(struct btrfs_device *dev,
static inline int btrfs_dev_stat_read(struct btrfs_device *dev,
static inline int btrfs_dev_stat_read_and_reset(struct btrfs_device *dev,
static inline void btrfs_dev_stat_set(struct btrfs_device *dev,
static inline const char *btrfs_dev_name(const struct btrfs_device *device)
struct btrfs_device *failing_dev);
void btrfs_scratch_superblocks(struct btrfs_fs_info *fs_info, struct btrfs_device *device);
int btrfs_update_device(struct btrfs_trans_handle *trans, struct btrfs_device *device);
bool btrfs_first_pending_extent(struct btrfs_device *device, u64 start, u64 len,
bool btrfs_find_hole_in_pending_extents(struct btrfs_device *device,
u64 btrfs_find_allocatable_zones(struct btrfs_device *device, u64 hole_start,
static bool btrfs_dev_set_active_zone(struct btrfs_device *device, u64 pos)
static void btrfs_dev_clear_active_zone(struct btrfs_device *device, u64 pos)
int btrfs_reset_device_zone(struct btrfs_device *device, u64 physical,
int btrfs_ensure_empty_zones(struct btrfs_device *device, u64 start, u64 size)
struct btrfs_device *device;
static int emulate_report_zones(struct btrfs_device *device, u64 pos,
static int btrfs_get_dev_zones(struct btrfs_device *device, u64 pos,
int btrfs_zoned_issue_zeroout(struct btrfs_device *device, u64 physical, u64 length)
struct btrfs_device *dev = bioc->stripes[i].dev;
int btrfs_sync_zone_write_pointer(struct btrfs_device *tgt_dev, u64 logical,
struct btrfs_device *device;
struct btrfs_device *device = stripe->dev;
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device;
struct btrfs_device *device;
int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache)
void btrfs_destroy_dev_zone_info(struct btrfs_device *device)
struct btrfs_zoned_device_info *btrfs_clone_dev_zone_info(struct btrfs_device *orig_dev)
static int btrfs_get_dev_zone(struct btrfs_device *device, u64 pos, struct blk_zone *zone)
struct btrfs_device *device;
struct btrfs_device *device;
int btrfs_sb_log_location(struct btrfs_device *device, int mirror, int rw,
int btrfs_advance_sb_log(struct btrfs_device *device, int mirror)
static inline int btrfs_get_dev_zone_info(struct btrfs_device *device,
static inline void btrfs_destroy_dev_zone_info(struct btrfs_device *device) { }
struct btrfs_device *orig_dev)
static inline int btrfs_sb_log_location(struct btrfs_device *device, int mirror,
static inline int btrfs_advance_sb_log(struct btrfs_device *device, int mirror)
static inline u64 btrfs_find_allocatable_zones(struct btrfs_device *device,
static inline int btrfs_reset_device_zone(struct btrfs_device *device,
static inline int btrfs_ensure_empty_zones(struct btrfs_device *device,
static inline int btrfs_zoned_issue_zeroout(struct btrfs_device *device,
static inline int btrfs_sync_zone_write_pointer(struct btrfs_device *tgt_dev,
static inline bool btrfs_dev_is_sequential(struct btrfs_device *device, u64 pos)
static inline bool btrfs_dev_is_empty_zone(struct btrfs_device *device, u64 pos)
static inline void btrfs_dev_set_empty_zone_bit(struct btrfs_device *device,
static inline void btrfs_dev_set_zone_empty(struct btrfs_device *device, u64 pos)
static inline void btrfs_dev_clear_zone_empty(struct btrfs_device *device, u64 pos)
static inline bool btrfs_check_super_location(struct btrfs_device *device, u64 pos)
static inline bool btrfs_can_zone_reset(struct btrfs_device *device,
int btrfs_get_dev_zone_info(struct btrfs_device *device, bool populate_cache);
void btrfs_destroy_dev_zone_info(struct btrfs_device *device);
struct btrfs_zoned_device_info *btrfs_clone_dev_zone_info(struct btrfs_device *orig_dev);
int btrfs_sb_log_location(struct btrfs_device *device, int mirror, int rw,
int btrfs_advance_sb_log(struct btrfs_device *device, int mirror);
u64 btrfs_find_allocatable_zones(struct btrfs_device *device, u64 hole_start,
int btrfs_reset_device_zone(struct btrfs_device *device, u64 physical,
int btrfs_ensure_empty_zones(struct btrfs_device *device, u64 start, u64 size);
int btrfs_zoned_issue_zeroout(struct btrfs_device *device, u64 physical, u64 length);
int btrfs_sync_zone_write_pointer(struct btrfs_device *tgt_dev, u64 logical,