En la solucion se hace lo siguiente para checkear que no se comparten bloques:
// Chequeo que no se compartan bloques
for ( i=1; i < MAX_SECTORS_ON_DISK; i++ ) {
if ( F[i] > 0 ) {
if ( ind_usados[F[i]] ) {
return False;
} else {
ind_usados[F[i]] = True;
}
}
Segun entiendo esto chequea que no existan dos entradas que "apunten" a lo mismo en la FAT pero creo que estaria faltando considerar la existencia de dos entries (o mas) que apunten a lo mismo en su comienzo.