gfs2_bit_search(9)
π¦ gfs2_bit_search(9) π¦
okay so this page is from the Kernel API Manual, and it's literally about gfs2_bit_search β searching a bitmap for a state. bestie, it's giving lowkey kernel glamour, and we're gonna get through every single detail together. π
β¨
π NAME π
gfs2_bit_search β search bitmap for a state.
β¨ SYNOPSIS β¨
u64 gfs2_bit_search (const __le64 *ptr , u64 mask , u8 state );
π ARGUMENTS π
ptrβ pointer to bitmap data. iconic.maskβ mask to use (normally0x55555....but adjusted for search start).stateβ the state we are searching for.
πΈ DESCRIPTION πΈ
so here's the vibe: we xor the bitmap data with a pattern that is the bitwise opposite of what we're looking for. that gives rise to a pattern of ones wherever there is a match. since we have two bits per entry, we take this pattern, shift it down by one place and then and it with the original. all the even bit positions (0, 2, 4, etc.) then represent successful matches, so we mask with 0x55555..... to remove the unwanted odd bit positions. periodt. π
this allows searching of a whole u64 at once (that's 32 blocks) with a single test (on 64 bit arches). no cap, that's the whole slay. π₯
π₯ SEE ALSO π₯
the whole friend group of related kernel functions, plus the source file, fr fr:
- Kernel file
./fs/gfs2/rgrp.c gfs2_setbit(9)gfs2_testbit(9)rs_cmp(9)gfs2_bitfit(9)gfs2_rbm_from_block(9)gfs2_rbm_add(9)gfs2_unaligned_extlen(9)gfs2_free_extlen(9)gfs2_bitcount(9)gfs2_rgrp_verify(9)gfs2_blk2rgrpd(9)gfs2_rgrpd_get_first(9)gfs2_rgrpd_get_next(9)__rs_deltree(9)gfs2_rs_deltree(9)gfs2_rs_delete(9)return_all_reservations(9)compute_bitstructs(9)gfs2_ri_total(9)read_rindex_entry(9)set_rgrp_preferences(9)gfs2_ri_update(9)gfs2_rindex_update(9)gfs2_rgrp_go_instantiate(9)gfs2_rgrp_brelse(9)gfs2_fitrim(9)rs_insert(9)rgd_free(9)rg_mblk_search(9)gfs2_next_unreserved_block(9)gfs2_reservation_check_and_update(9)gfs2_rbm_find(9)try_rgrp_unlink(9)gfs2_rgrp_congested(9)gfs2_rgrp_used_recently(9)fast_to_acquire(9)gfs2_inplace_reserve(9)gfs2_inplace_release(9)gfs2_alloc_extent(9)rgblk_free(9)gfs2_rgrp_dump(9)gfs2_adjust_reservation(9)gfs2_set_alloc_start(9)gfs2_alloc_blocks(9)__gfs2_free_blocks(9)gfs2_free_meta(9)gfs2_check_blk_type(9)gfs2_rlist_add(9)gfs2_rlist_alloc(9)gfs2_rlist_free(9)
xoxo bestie π β source ./fs/gfs2, date October 2026, page gfs2_bit_search(9) π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms