STRUCT JBD2_INODE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

okay so bestie, welcome to struct jbd2_inode(9) from the Kernel API Manual β€” and it's giving β€œthe little struct that keeps ordered-mode inodes linked inside a transaction so commit can sync them” energy. πŸ’…

The jbd_inode type β€” yes, that's literally how the NAME text says it β€” is the structure linking inodes in ordered mode present in a transaction so that we can sync them during commit. ✨


πŸ¦‹ SYNOPSIS πŸ¦‹

       struct jbd2_inode {
           transaction_t *i_transaction;
           transaction_t *i_next_transaction;
           struct list_head i_list;
           struct inode *i_vfs_inode;
           unsigned long i_flags;
           pgoff_t i_dirty_start_page;
           pgoff_t i_dirty_end_page;
        };

πŸ’… Members πŸ’…

  • i_transaction β€” which transaction does this inode belong to? Either the running transaction or the committing one. Tagged [j_list_lock]. πŸ‘‘
  • i_next_transaction β€” pointer to the running transaction modifying the inode's data in case there is already a committing transaction touching it. Tagged [j_list_lock]. πŸŒ€
  • i_list β€” list of inodes in the i_transaction. Tagged [j_list_lock]. πŸŽ€
  • i_vfs_inode β€” the VFS inode this inode belongs to; [constant for lifetime of structure]. πŸ¦‹
  • i_flags β€” flags of the inode. Tagged [j_list_lock]. 🚩
  • i_dirty_start_page β€” dirty range start in PAGE_SIZE units. The dirty range is empty if i_dirty_start_page is greater than or equal to i_dirty_end_page. Tagged [j_list_lock]. 🌸
  • i_dirty_end_page β€” dirty range end in PAGE_SIZE units (exclusive). Tagged [j_list_lock]. πŸ”₯

🌈 SEE ALSO 🌈

the manpage points you at the kernel file ./include/linux/jbd2.h, plus these iconic little references:


source/version: ./include/linux Β· date: October 2026 Β· page: struct jbd2_inode(9) β€” bye bestie, go sync those inodes πŸ’–πŸ¦‹

πŸ“¦ where this page comes from