nilfs_ioctl_..._inode_block(9)
π nilfs_ioctl_..._inode_block β bestie's guide to the Kernel API Manual (section 9) β¨
okay so picture this: you're deep in the kernel, section 9 of the Kernel API Manual, and you meet this little function. her whole job? getting a data/node block all prepped and pretty so the garbage collector can move it. no cap, that's it. π
πΈ NAME πΈ
nilfs_ioctl_move_inode_block β prepare data/node block for moving by GC π«
π¦ SYNOPSIS π¦
int nilfs_ioctl_move_inode_block (struct inode *inode , struct
nilfs_vdesc *vdesc , struct list_head *buffers );
like, yes, she's a mouthful, but she's worth it π«Ά
π ARGUMENTS π
inodeβ the inode object, mmkay? the actual file-ish thing we're working with.vdescβ descriptor of virtual block number. lowkey the little ID card for the block πbuffersβ list of moving buffers. it's giving "queue of stuff in transit" energy β¨
π₯ DESCRIPTION π₯
so what does nilfs_ioctl_move_inode_block actually do? she registers the data/node buffer in the GC pagecache and submits a read request. that's the whole vibe. literally registers + submits, and now the block is queued up and ready to be read. slay. π
β RETURN β
0 on success π β or one of these negative error codes if things go sideways:
-EEXISTβ Block conflict detected. (someone else called dibs π)-EINVALβ Invalid virtual block descriptor. (the ID card did NOT check out π)-EIOβ I/O error.-ENOENTβ Requested block doesn't exist. (ghost block π»)-ENOMEMβ Insufficient memory available. (no room, no vibes π)
π SEE ALSO π
Kernel file ./fs/nilfs2/ioctl.c, plus the whole friend group β go say hi to all of them:
nilfs_ioctl_wrap_copy(9)nilfs_fileattr_get(9)nilfs_fileattr_set(9)nilfs_ioctl_getversion(9)nilfs_ioctl_change_cpmode(9)nilfs_ioctl_delete_checkpoint(9)nilfs_ioctl_do_get_cpinfo(9)nilfs_ioctl_get_cpstat(9)nilfs_ioctl_do_get_suinfo(9)nilfs_ioctl_get_sustat(9)nilfs_ioctl_do_get_vinfo(9)nilfs_ioctl_do_get_bdescs(9)nilfs_ioctl_get_bdescs(9)nilfs_ioctl_move_blocks(9)nilfs_ioctl_delete_checkpoints(9)nilfs_ioctl_free_vblocknrs(9)nilfs_ioctl_mark_blocks_dirty(9)nilfs_ioctl_clean_segments(9)nilfs_ioctl_sync(9)nilfs_ioctl_resize(9)nilfs_ioctl_trim_fs(9)nilfs_ioctl_set_alloc_range(9)nilfs_ioctl_get_info(9)nilfs_ioctl_set_suinfo(9)nilfs_ioctl_get_fslabel(9)nilfs_ioctl_set_fslabel(9)
ngl, cross-referencing is basically the group chat of the kernel. iykyk π§
k that's the whole page bestie, and one last thing before you go β this one lives in ./fs/nilfs2, dated October 2026, and it's filed under nilfs_ioctl_..._inode_block(9) in the Kernel API Manual. periodt. ππ
π¦ 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