On 22/01/2021 16:15, Josef Bacik wrote:
>> @@ -2725,6 +2726,9 @@ fetch_cluster_info(struct btrfs_fs_info *fs_info,
>>   {
>>      struct btrfs_free_cluster *ret = NULL;
>>   
>> +    if (btrfs_is_zoned(fs_info))
>> +            return NULL;
>> +
> 
> This is unrelated to the rest of the changes, seems like something that was 
> just 
> missed?  Should probably be in its own patch.

Hmm probably belongs to another patch, just need to find to which.

> 
>>      *empty_cluster = 0;
>>      if (btrfs_mixed_space_info(space_info))
>>              return ret;
>> @@ -2808,7 +2812,11 @@ static int unpin_extent_range(struct btrfs_fs_info 
>> *fs_info,
>>              space_info->max_extent_size = 0;
>>              percpu_counter_add_batch(&space_info->total_bytes_pinned,
>>                          -len, BTRFS_TOTAL_BYTES_PINNED_BATCH);
>> -            if (cache->ro) {
>> +            if (btrfs_is_zoned(fs_info)) {
>> +                    /* Need reset before reusing in a zoned block group */
>> +                    space_info->bytes_zone_unusable += len;
>> +                    readonly = true;
>> +            } else if (cache->ro) {
>>                      space_info->bytes_readonly += len;
>>                      readonly = true;
>>              }
> 
> Is this right?  If we're balancing a block group then it could be marked ro 
> and 
> be zoned, so don't we want to account for this in ->bytes_readonly if it's 
> read 
> only?  So probably more correct to do
> 
> if (cache->ro) {
>       /* stuff */
> } else if (btrfs_is_zoned(fs_info) {
>       /* other stuff */
> }
> 

Fixed

Reply via email to