Buenas, tenia una pregunta de la solución de la función mover.
Supongamos que dirDestino tiene tres bloques de datos, si en el primero ya encontramos una entrada libre se guarda en jfree el indice de dicha entrada, pero la iteración sigue hasta recorrer todos los bloques asociados al direDestino (while (i<IT[dirDestino.inodo ].tope)) quedando en la variable buffdst el ultimo bloque leído (el tercero).
El problema que me parece que pasa es que cuando al final se van a mover los datos al hacer buffdst[jfree], buffdst no tiene el sector donde estaba la entrada libre, sino que esta almacenando en el ultimo bloque de datos de el dirDestino.
Entonces se están moviendo las cosas a otro lado, no se si me explico.
Gracias!
Saludos.