Se você puder me explicar como esse sistema de arquivos alocaria os blocos de índice e blocos de dados para um arquivo de 40 KiB, provavelmente eu poderia ser de alguma ajuda. Mas eu não tenho o contexto que você tem que entender como este sistema de arquivos hipotético usaria os blocos de índice, os ponteiros diretos nos blocos de índice e os blocos de índice indiretos referenciados na questão.
There are 12 blocks and each block is 1024 bytes. 1024 * 12 = 12288 bytes or 12 KB directly accessible.
O limite de tamanho do arquivo seria claramente 12 KB se a única maneira de armazenar os dados de um arquivo fosse alocar 1 bloco de dados por ponteiro de inode. Como essa não é uma de suas respostas, presumo que você não esteja entendendo completamente como os dados de um arquivo são armazenados neste sistema de arquivos de exemplo.
Lembre-se de que também existe um ponteiro para um bloco de índice indireto. Qual é o propósito / uso do bloco de índice indireto neste sistema de arquivos?
The purpose of the indirect index block in this file system is IF I understand it correctly is that the indirect pointer points to an entire block of pointers.
Supondo que você esteja correto ... você saberia melhor do que eu desde que eu não tomei sua classe ... quantos ponteiros o bloco de índice indireto poderia ter? Quanto (mais) dados você poderia armazenar usando esses ponteiros? Qual seria o tamanho máximo total do arquivo?