static bool need_preemptive_reclaim(struct btrfs_fs_info *fs_info,
                                    struct btrfs_space_info *space_info)
 {
-       u64 global_rsv_size = fs_info->global_block_rsv.reserved;
+       const u64 global_rsv_size = btrfs_block_rsv_reserved(&fs_info->global_block_rsv);
        u64 ordered, delalloc;
        u64 thresh;
        u64 used;
        ordered = percpu_counter_read_positive(&fs_info->ordered_bytes) >> 1;
        delalloc = percpu_counter_read_positive(&fs_info->delalloc_bytes);
        if (ordered >= delalloc)
-               used += fs_info->delayed_refs_rsv.reserved +
-                       fs_info->delayed_block_rsv.reserved;
+               used += btrfs_block_rsv_reserved(&fs_info->delayed_refs_rsv) +
+                       btrfs_block_rsv_reserved(&fs_info->delayed_block_rsv);
        else
                used += space_info->bytes_may_use - global_rsv_size;
 
                enum btrfs_flush_state flush;
                u64 delalloc_size = 0;
                u64 to_reclaim, block_rsv_size;
-               u64 global_rsv_size = global_rsv->reserved;
+               const u64 global_rsv_size = btrfs_block_rsv_reserved(global_rsv);
 
                loops++;
 
                 * assume it's tied up in delalloc reservations.
                 */
                block_rsv_size = global_rsv_size +
-                       delayed_block_rsv->reserved +
-                       delayed_refs_rsv->reserved +
-                       trans_rsv->reserved;
+                       btrfs_block_rsv_reserved(delayed_block_rsv) +
+                       btrfs_block_rsv_reserved(delayed_refs_rsv) +
+                       btrfs_block_rsv_reserved(trans_rsv);
                if (block_rsv_size < space_info->bytes_may_use)
                        delalloc_size = space_info->bytes_may_use - block_rsv_size;
 
                        to_reclaim = delalloc_size;
                        flush = FLUSH_DELALLOC;
                } else if (space_info->bytes_pinned >
-                          (delayed_block_rsv->reserved +
-                           delayed_refs_rsv->reserved)) {
+                          (btrfs_block_rsv_reserved(delayed_block_rsv) +
+                           btrfs_block_rsv_reserved(delayed_refs_rsv))) {
                        to_reclaim = space_info->bytes_pinned;
                        flush = COMMIT_TRANS;
-               } else if (delayed_block_rsv->reserved >
-                          delayed_refs_rsv->reserved) {
-                       to_reclaim = delayed_block_rsv->reserved;
+               } else if (btrfs_block_rsv_reserved(delayed_block_rsv) >
+                          btrfs_block_rsv_reserved(delayed_refs_rsv)) {
+                       to_reclaim = btrfs_block_rsv_reserved(delayed_block_rsv);
                        flush = FLUSH_DELAYED_ITEMS_NR;
                } else {
-                       to_reclaim = delayed_refs_rsv->reserved;
+                       to_reclaim = btrfs_block_rsv_reserved(delayed_refs_rsv);
                        flush = FLUSH_DELAYED_REFS_NR;
                }