Lines Matching defs:fs_info
85 struct btrfs_fs_info *fs_info = container_of(discard_ctl,
89 return (!(fs_info->sb->s_flags & SB_RDONLY) &&
90 test_bit(BTRFS_FS_DISCARD_RUNNING, &fs_info->flags));
291 !btrfs_test_opt(block_group->fs_info, DISCARD_ASYNC))
294 discard_ctl = &block_group->fs_info->discard_ctl;
363 if (!block_group || !btrfs_test_opt(block_group->fs_info, DISCARD_ASYNC))
644 !btrfs_test_opt(block_group->fs_info, DISCARD_ASYNC) ||
649 discard_ctl = &block_group->fs_info->discard_ctl;
672 * @fs_info: fs_info of interest
680 void btrfs_discard_punt_unused_bgs_list(struct btrfs_fs_info *fs_info)
684 spin_lock(&fs_info->unused_bgs_lock);
686 list_for_each_entry_safe(block_group, next, &fs_info->unused_bgs,
689 btrfs_discard_queue_work(&fs_info->discard_ctl, block_group);
696 spin_unlock(&fs_info->unused_bgs_lock);
731 void btrfs_discard_resume(struct btrfs_fs_info *fs_info)
733 if (!btrfs_test_opt(fs_info, DISCARD_ASYNC)) {
734 btrfs_discard_cleanup(fs_info);
738 btrfs_discard_punt_unused_bgs_list(fs_info);
740 set_bit(BTRFS_FS_DISCARD_RUNNING, &fs_info->flags);
743 void btrfs_discard_stop(struct btrfs_fs_info *fs_info)
745 clear_bit(BTRFS_FS_DISCARD_RUNNING, &fs_info->flags);
748 void btrfs_discard_init(struct btrfs_fs_info *fs_info)
750 struct btrfs_discard_ctl *discard_ctl = &fs_info->discard_ctl;
772 void btrfs_discard_cleanup(struct btrfs_fs_info *fs_info)
774 btrfs_discard_stop(fs_info);
775 cancel_delayed_work_sync(&fs_info->discard_ctl.work);
776 btrfs_discard_purge_list(&fs_info->discard_ctl);