STRUCT NILFS_BMAP_OPERATIONS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME

struct nilfs_bmap_operations β€” the bmap operation table, aka the little black book of function pointers that tells NILFS2 how to do block mapping stuff. Bestie, this is the vtable. It's giving "the whole personality of a bmap in one struct." πŸŽ€


✨ SYNOPSIS ✨

struct nilfs_bmap_operations {
    int (*bop_lookup)(const struct nilfs_bmap *, __u64, int, __u64 *);
    int (*bop_lookup_contig)(const struct nilfs_bmap *, __u64, __u64 *,
unsigned int);
    int (*bop_insert)(struct nilfs_bmap *, __u64, __u64);
    int (*bop_delete)(struct nilfs_bmap *bmap, __u64 key, bool deform);
    void (*bop_clear)(struct nilfs_bmap *);
    int (*bop_propagate)(struct nilfs_bmap *, struct buffer_head *);
    void (*bop_lookup_dirty_buffers)(struct nilfs_bmap *, struct
list_head *);
    int (*bop_assign)(struct nilfs_bmap *, struct buffer_head **,
sector_t, union nilfs_binfo *);
    int (*bop_mark)(struct nilfs_bmap *, __u64, int);
    int (*bop_seek_key)(const struct nilfs_bmap *, __u64, __u64 *);
    int (*bop_last_key)(const struct nilfs_bmap *, __u64 *);
 };

Like, look at all those function pointers. Eleven of them. She's thorough. πŸ’…


πŸ¦‹ Members πŸ¦‹

Okay so every single one of these does one little job, and together they run the whole show:

  • bop_lookup β€” single block search operation. One block, one search, no cap. πŸ”
  • bop_lookup_contig β€” consecutive block search operation. Same energy but for a whole contiguous run, she's doing cardio. πŸƒβ€β™€οΈ
  • bop_insert β€” block insertion operation. New block bestie incoming. ✨
  • bop_delete β€” block delete operation. Byeee, blocking you, literally. πŸ’€
  • bop_clear β€” block mapping resource release operation. Cleaning up, closing tabs, releasing the resources, self-care fr fr. 🧚
  • bop_propagate β€” operation to propagate dirty state towards the mapping root. Dirty state travels upward, like gossip. πŸ‘€
  • bop_lookup_dirty_buffers β€” operation to collect dirty block buffers. Rounding up all the messy ones into a list. 🫢
  • bop_assign β€” disk block address assignment operation. Handing out addresses like a bouncer with a clipboard. πŸ‘‘
  • bop_mark β€” operation to mark in-use blocks as dirty for relocation by GC. GC = garbage collection, and she's tagging blocks so they get moved later. Marked. 🏷️
  • bop_seek_key β€” find valid block key operation. Seek, and ye shall find. πŸ”Ž
  • bop_last_key β€” find last valid block key operation. The final boss key. ⭐

🌈 SEE ALSO 🌈

Kernel file ./fs/nilfs2/bmap.h, plus these iconique friends:

  • union nilfs_bmap_ptr_req(9)
  • struct nilfs_bmap_stats(9)
  • struct nilfs_bmap(9)
  • struct nilfs_bmap_store(9)

Go read ./fs/nilfs2/bmap.h if you want the full lore, iykyk. πŸ“–

That's the whole page, bestie β€” no notes, ate and left absolutely no crumbs. This one comes straight out of ./fs/nilfs2 and it's dated October 2026, so like… future vibes only. πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from