Isenção de responsabilidade: Eu não tentei nenhuma dessas funções e estou trabalhando na documentação e nos comentários. Minhas observações podem estar incorretas!
A única função que posso ver que usa o valor i_ino
em fs/writeback.c
é a função interna block_dump___mark_inode_dirty
, que marca um inode como sujo se foi hash (e ainda não está marcado) e define um timestamp (para futuras operações de write-back.) A lista atual de inodes a serem gravados parece estar disponível como uma lista ( struct bdi_writeback *wb
) dada a wb_writeback()
.
Como você usou data=ordered
em suas opções de montagem, não acredito que ocorram writebacks de dados, portanto nenhum inodes deve ser considerado "sujo". De acordo com a documentação do ext4 :
data=ordered
(*)All data are forced directly out to the main file system prior to its metadata being committed to the journal.
Mais tarde, uma descrição de como o writeback funciona no ext4:
Data Mode
- writeback mode
In
data=writeback
mode, ext4 does not journal data at all. This mode provides a similar level of journaling as that of XFS, JFS, and ReiserFS in its default mode - metadata journaling. A crash+recovery can cause incorrect data to appear in files which were written shortly before the crash. This mode will typically provide the best ext4 performance.
- ordered mode
In
data=ordered
mode, ext4 only officially journals metadata, but it logically groups metadata information related to data changes with the data blocks into a single unit called a transaction. When it's time to write the new metadata out to disk, the associated data blocks are written first. In general, this mode performs slightly slower than writeback but significantly faster than journal mode.
Se você deseja rastrear eventos em uma partição ext4, talvez esteja interessado em ver como a interface ext4-JBD2 funciona em fs/ext4/ext4_jbd2.c
e as interfaces de rastreamento disponíveis em include/trace/events/ext4.h
.