(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.