Lines Matching refs:vdo_slab

43  * @journal: vdo_slab journal to retrieve from.
54 static bool is_slab_open(struct vdo_slab *slab)
135 static bool is_slab_journal_blank(const struct vdo_slab *slab)
169 static void check_if_slab_drained(struct vdo_slab *slab)
359 static void update_slab_summary_entry(struct vdo_slab *slab, struct vdo_waiter *waiter,
625 struct vdo_slab *slab = journal->slab;
647 * vdo_slab journal can only reap past sequence number 1 when all the ref counts for this
659 static void reopen_slab_journal(struct vdo_slab *slab)
665 "vdo_slab journal's active block empty before reopening");
760 VDO_ASSERT_LOG_ONLY(unused_entries >= 0, "vdo_slab journal block is not overfull");
957 bool vdo_attempt_replay_into_slab(struct vdo_slab *slab, physical_block_number_t pbn,
1017 struct vdo_slab *slab = container_of(waiter, struct vdo_slab, summary_waiter);
1043 struct vdo_slab *slab = context;
1054 static void save_dirty_reference_blocks(struct vdo_slab *slab)
1071 struct vdo_slab *slab = block->slab;
1170 struct vdo_slab *slab = ((struct reference_block *) completion->parent)->slab;
1223 struct vdo_slab *slab = journal->slab;
1280 static struct reference_block * __must_check get_reference_block(struct vdo_slab *slab,
1295 static int __must_check slab_block_number_from_pbn(struct vdo_slab *slab,
1318 static int __must_check get_reference_counter(struct vdo_slab *slab,
1333 static unsigned int calculate_slab_priority(struct vdo_slab *slab)
1372 static void prioritize_slab(struct vdo_slab *slab)
1385 static void adjust_free_block_count(struct vdo_slab *slab, bool incremented)
1420 static int increment_for_data(struct vdo_slab *slab, struct reference_block *block,
1468 static int decrement_for_data(struct vdo_slab *slab, struct reference_block *block,
1531 static int increment_for_block_map(struct vdo_slab *slab, struct reference_block *block,
1591 static int update_reference_count(struct vdo_slab *slab, struct reference_block *block,
1628 static int __must_check adjust_reference_count(struct vdo_slab *slab,
1853 struct vdo_slab *slab = journal->slab;
1891 static void reset_search_cursor(struct vdo_slab *slab)
1909 static bool advance_search_cursor(struct vdo_slab *slab)
1948 struct vdo_slab *slab = vdo_get_slab(depot, pbn);
1979 static int replay_reference_count_change(struct vdo_slab *slab,
2047 static bool find_free_block(const struct vdo_slab *slab, slab_block_number *index_ptr)
2104 static bool search_current_reference_block(const struct vdo_slab *slab,
2123 static bool search_reference_blocks(struct vdo_slab *slab,
2142 static void make_provisional_reference(struct vdo_slab *slab,
2161 static void dirty_all_reference_blocks(struct vdo_slab *slab)
2203 struct vdo_slab *slab = block->slab;
2243 struct vdo_slab *slab = block->slab;
2287 static void load_reference_blocks(struct vdo_slab *slab)
2304 * Depending upon the type of drain being performed (as recorded in the ref_count's vdo_slab), the
2307 static void drain_slab(struct vdo_slab *slab)
2359 static int allocate_slab_counters(struct vdo_slab *slab)
2365 "vdo_slab %u doesn't allocate refcounts twice",
2400 static int allocate_counters_if_clean(struct vdo_slab *slab)
2412 struct vdo_slab *slab = journal->slab;
2469 struct vdo_slab *slab = journal->slab;
2493 static void load_slab_journal(struct vdo_slab *slab)
2518 static void register_slab_for_scrubbing(struct vdo_slab *slab, bool high_priority)
2544 static void queue_slab(struct vdo_slab *slab)
2598 struct vdo_slab *slab = container_of(state, struct vdo_slab, state);
2631 static struct vdo_slab *get_next_slab(struct slab_scrubber *scrubber)
2633 struct vdo_slab *slab;
2636 struct vdo_slab, allocq_entry);
2640 return list_first_entry_or_null(&scrubber->slabs, struct vdo_slab,
2734 struct vdo_slab *slab = scrubber->slab;
2778 sequence_number_t block_number, struct vdo_slab *slab)
2794 "vdo_slab journal entry (%llu, %u) had invalid offset %u in slab (size %u blocks)",
2803 "vdo_slab journal entry (%llu, %u) (%s of offset %u) could not be applied in slab %u",
2827 struct vdo_slab *slab = scrubber->slab;
2860 vdo_log_error("vdo_slab journal block for slab %u was invalid",
2918 struct vdo_slab *slab = scrubber->slab;
2937 struct vdo_slab *slab;
3001 struct vdo_slab *slab)
3022 struct vdo_slab **slabs = depot->slabs;
3045 static struct vdo_slab *next_slab(struct slab_iterator *iterator)
3047 struct vdo_slab *slab = iterator->next;
3087 struct vdo_slab *slab = next_slab(&iterator);
3106 int vdo_acquire_provisional_reference(struct vdo_slab *slab, physical_block_number_t pbn,
3134 static int __must_check allocate_slab_block(struct vdo_slab *slab,
3164 static void open_slab(struct vdo_slab *slab)
3202 struct vdo_slab, allocq_entry));
3242 struct vdo_slab *slab = vdo_get_slab(completion->vdo->depot, updater->zpbn.pbn);
3366 struct vdo_slab *slab = next_slab(&iterator);
3416 struct vdo_slab *slab;
3533 struct vdo_slab *slab;
3585 struct vdo_slab *slab = next_slab(&iterator);
3645 static void free_slab(struct vdo_slab *slab)
3658 static int initialize_slab_journal(struct vdo_slab *slab)
3719 struct vdo_slab **slab_ptr)
3722 struct vdo_slab *slab;
3725 result = vdo_allocate(1, struct vdo_slab, __func__, &slab);
3729 *slab = (struct vdo_slab) {
3782 result = vdo_allocate(slab_count, struct vdo_slab *,
3789 depot->slab_count * sizeof(struct vdo_slab *));
3801 struct vdo_slab **slab_ptr = &depot->new_slabs[depot->new_slab_count];
4132 struct vdo_slab *slab = depot->new_slabs[i];
4338 struct vdo_slab *vdo_get_slab(const struct slab_depot *depot,
4367 struct vdo_slab *slab = vdo_get_slab(depot, pbn);
4727 struct vdo_slab *slab = depot->new_slabs[i];