Lines Matching refs:bg

288 	struct btrfs_block_group *bg;
291 bg = btrfs_lookup_block_group(fs_info, bytenr);
292 if (!bg)
295 spin_lock(&bg->lock);
296 if (bg->ro)
299 atomic_inc(&bg->nocow_writers);
300 spin_unlock(&bg->lock);
304 btrfs_put_block_group(bg);
311 struct btrfs_block_group *bg;
313 bg = btrfs_lookup_block_group(fs_info, bytenr);
314 ASSERT(bg);
315 if (atomic_dec_and_test(&bg->nocow_writers))
316 wake_up_var(&bg->nocow_writers);
321 btrfs_put_block_group(bg);
322 btrfs_put_block_group(bg);
325 void btrfs_wait_nocow_writers(struct btrfs_block_group *bg)
327 wait_var_event(&bg->nocow_writers, !atomic_read(&bg->nocow_writers));
333 struct btrfs_block_group *bg;
335 bg = btrfs_lookup_block_group(fs_info, start);
336 ASSERT(bg);
337 if (atomic_dec_and_test(&bg->reservations))
338 wake_up_var(&bg->reservations);
339 btrfs_put_block_group(bg);
342 void btrfs_wait_block_group_reservations(struct btrfs_block_group *bg)
344 struct btrfs_space_info *space_info = bg->space_info;
346 ASSERT(bg->ro);
348 if (!(bg->flags & BTRFS_BLOCK_GROUP_DATA))
364 wait_var_event(&bg->reservations, !atomic_read(&bg->reservations));
1263 * Here we make sure if we mark this bg RO, we still have enough
1297 struct btrfs_block_group *bg)
1299 struct btrfs_fs_info *fs_info = bg->fs_info;
1301 const u64 start = bg->start;
1302 const u64 end = start + bg->length - 1;
1534 void btrfs_mark_bg_unused(struct btrfs_block_group *bg)
1536 struct btrfs_fs_info *fs_info = bg->fs_info;
1539 if (list_empty(&bg->bg_list)) {
1540 btrfs_get_block_group(bg);
1541 trace_btrfs_add_unused_block_group(bg);
1542 list_add_tail(&bg->bg_list, &fs_info->unused_bgs);
1552 struct btrfs_block_group_item bg;
1567 "logical %llu len %llu found bg but no related chunk",
1580 read_extent_buffer(leaf, &bg, btrfs_item_ptr_offset(leaf, slot),
1581 sizeof(bg));
1582 flags = btrfs_stack_block_group_flags(&bg) &
1842 struct btrfs_block_group *bg;
1858 bg = btrfs_lookup_block_group(fs_info, em->start);
1859 if (!bg) {
1867 if (bg->start != em->start || bg->length != em->len ||
1868 (bg->flags & BTRFS_BLOCK_GROUP_TYPE_MASK) !=
1874 bg->start, bg->length,
1875 bg->flags & BTRFS_BLOCK_GROUP_TYPE_MASK);
1878 btrfs_put_block_group(bg);
1883 btrfs_put_block_group(bg);
1941 "bg %llu is a mixed block group but filesystem hasn't enabled mixed block groups",
2196 * assigned to our block group. We want our bg to be added to the rbtree
2295 * Skip chunk alloction if the bg is SYSTEM, this is to avoid system
3455 bool btrfs_inc_block_group_swap_extents(struct btrfs_block_group *bg)
3459 spin_lock(&bg->lock);
3460 if (bg->ro)
3463 bg->swap_extents++;
3464 spin_unlock(&bg->lock);
3469 void btrfs_dec_block_group_swap_extents(struct btrfs_block_group *bg, int amount)
3471 spin_lock(&bg->lock);
3472 ASSERT(!bg->ro);
3473 ASSERT(bg->swap_extents >= amount);
3474 bg->swap_extents -= amount;
3475 spin_unlock(&bg->lock);