ext2_block_to_path(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay so bestie, this is ext2_block_to_path(9) from the Kernel API Manual, and it is literally here to parse the block number into an array of offsets. periodt πŸ’…


✨ SYNOPSIS ✨

int ext2_block_to_path (struct inode *inode , long i_block , int
       offsets[4] , int *boundary );

πŸ’… ARGUMENTS πŸ’…

  • inode β€” the inode in question, but bestie we are only interested in its superblock πŸ‘€
  • i_block β€” the block number to be parsed, no cap
  • offsets β€” the array where the offsets get stored πŸŽ€
  • boundary β€” set this non-zero if the referred-to block is likely to be followed (on disk) by an indirect block. To store the locations of file's data ext2 uses a data structure common for UNIX filesystems - tree of pointers anchored in the inode, with data blocks at leaves and indirect blocks in intermediate nodes. This function translates the block number into path in that tree - return value is the path length and offsets[n] is the offset of pointer to (n+1)th node in the nth one. If block is out of range (negative or too large) warning is printed and zero returned. 🫢

🫢 NOTE 🫢

function doesn't find node addresses, so no IO is needed. All we need to know is the capacity of indirect blocks (taken from the inode->i_sb). lowkey iconic that it stays IO-free ✨


πŸ‘€ SEE ALSO πŸ‘€

Kernel file ./fs/ext2/inode.c:


this cutie comes from ./fs/ext2 and is dated October 2026 β€” mwah πŸ’–πŸŒΈ

πŸ“¦ where this page comes from