advance_search_cursor(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… advance_search_cursor(9) β€” welcome to the Kernel API Manual, bestie πŸŽ€

okay so picture this: you're deep in the kernel API manual, section 9, and you've got a search cursor that needs to scoot forward. that's the whole vibe of this page. let's get into it ✨


🌸 NAME

advance_search_cursor β€” moves the search cursor forward to the start of the next reference block in a slab, no cap πŸ¦‹

✨ SYNOPSIS

bool advance_search_cursor (struct vdo_slab *slab );

like, that's it. one argument. she's lowkey minimalist πŸ’…

🫢 ARGUMENTS

  • slab β€” the slab. that's the entire description, and honestly? iconic. it's the slab you're working with, bestie, what more do you want from her πŸ’–

πŸ’œ DESCRIPTION

so here's the tea β˜• β€” this function advances the cursor to the start of the next reference block in a slab. and if the current block happens to be the last reference block? it wraps around to the first reference block instead. the way that it just circles back around like a little carousel 🎠 β€” very main character energy of it.

⭐ RETURN

it returns True unless the cursor was at the last reference block. so if you got False back, congrats, you were at the end and she wrapped around for you. wrap-around behavior detected, periodt πŸ”₯

🌈 SEE ALSO

okay this is the part where the manpage absolutely ATE and left no crumbs πŸ‘‘ β€” because this one function is friends with, like, everyone in ./drivers/md/dm-vdo/slab-depot.c. blocking off the whole group chat fr fr:

get_lock(9), must_make_entries_to_flush(9), is_reaping(9), initialize_tail_block(9), initialize_journal_state(9), block_is_full(9), is_slab_journal_blank(9), mark_slab_journal_dirty(9), compute_fullness_hint(9), check_summary_drain_complete(9), notify_summary_waiters(9), finish_updating_slab_summary_block(9), finish_update(9), handle_write_error(9), launch_write(9), update_slab_summary_entry(9), finish_reaping(9), complete_reaping(9), handle_flush_error(9), flush_for_reaping(9), reap_slab_journal(9), adjust_slab_journal_block_reference(9), release_journal_locks(9), update_tail_block_location(9), reopen_slab_journal(9), complete_write(9), write_slab_journal_block(9), commit_tail(9), encode_slab_journal_entry(9), expand_journal_point(9), add_entry(9), vdo_attempt_replay_into_slab(9), requires_reaping(9), launch_reference_block_write(9), finish_reference_block_write(9), get_reference_counters_for_block(9), pack_reference_block(9), handle_io_error(9), write_reference_block(9), reference_count_to_status(9), dirty_block(9), get_reference_block(9), slab_block_number_from_pbn(9), get_reference_counter(9), adjust_free_block_count(9), increment_for_data(9), decrement_for_data(9), increment_for_block_map(9), update_reference_count(9), add_entry_from_waiter(9), is_next_entry_a_block_map_increment(9), add_entries(9), reset_search_cursor(9), vdo_adjust_reference_count_for_rebuild(9), replay_reference_count_change(9), find_zero_byte_in_word(9), find_free_block(9), search_current_reference_block(9), search_reference_blocks(9), make_provisional_reference(9), dirty_all_reference_blocks(9), match_bytes(9), count_valid_references(9), unpack_reference_block(9), finish_reference_block_load(9), load_reference_block_group(9), load_reference_blocks(9), drain_slab(9), read_slab_journal_tail(9), load_slab_journal(9), get_next_slab(9), has_slabs_to_scrub(9), uninitialize_scrubber_vio(9), finish_scrubbing(9), slab_scrubbed(9), abort_scrubbing(9), handle_scrubber_error(9), apply_block_entries(9), apply_journal_entries(9), start_scrubbing(9), scrub_next_slab(9), scrub_slabs(9), get_depot_slab_iterator(9), next_slab(9), abort_waiter(9), vdo_acquire_provisional_reference(9), open_slab(9), vdo_enqueue_clean_slab_waiter(9), vdo_modify_reference_count(9), vdo_notify_slab_journals_are_recovered(9), make_slab(9), allocate_slabs(9), vdo_abandon_new_slabs(9), release_recovery_journal_lock(9), prepare_for_tail_block_commit(9), schedule_tail_block_commit(9), initialize_slab_scrubber(9), initialize_slab_summary_block(9), vdo_decode_slab_depot(9), vdo_free_slab_depot(9), vdo_record_slab_depot(9), vdo_allocate_reference_counters(9), get_slab_number(9), vdo_get_slab(9), vdo_get_increment_limit(9), vdo_is_physical_data_block(9), vdo_get_slab_depot_allocated_blocks(9), vdo_get_slab_depot_data_blocks(9), finish_combining_zones(9), combine_summaries(9), finish_loading_summary(9), load_slab_summary(9), vdo_load_slab_depot(9), vdo_prepare_slab_depot_to_allocate(9), vdo_update_slab_depot_size(9), vdo_prepare_to_grow_slab_depot(9), finish_registration(9), vdo_use_new_slabs(9), stop_scrubbing(9), vdo_drain_slab_depot(9), resume_scrubbing(9), vdo_resume_slab_depot(9), vdo_commit_oldest_slab_journal_tail_blocks(9), vdo_scrub_all_unrecovered_slabs(9), get_block_allocator_statistics(9), get_ref_counts_statistics(9), get_slab_journal_statistics(9), vdo_get_slab_depot_statistics(9), vdo_dump_slab_depot(9)

like, she knows everybody at the function party πŸ’€ go say hi, iykyk πŸ™ˆ


and that's the page!! kisses from ./drivers/md/dm-vdo, dated October 2026 β€” stan this manpage, mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from