(isto é, requerendo fsck
). Nenhuma inconsistência do sistema de arquivos é necessária.
Sim, a liberação do bloco ocorrerá após a desvinculação. Mas este processo não será interrompível.
ext2_evict_inode
- >
__ext2_truncate_blocks ->
ext2_free_branches -> (for loop)
sb_bread ->
wait_on_buffer ->
wait_on_bit_io(&bh->b_state, BH_Lock, TASK_UNINTERRUPTIBLE);
O exemplo acima é para ext2
, achei que seria mais simples de se olhar. ext3
não será diferente ...
ext4
deve ser mais rápido. O uso de extensões deve evitar a necessidade de blocos triplos indiretos . (O artigo descreve a adição de extensões ao ext3, mas Linus recusou e disse para aumentar o número da versão para ext4 primeiro). Espero que o tempo de atualização dos bitmaps seja o mesmo, mas eles são muito mais compactos que os ponteiros de bloco.