(* place le block nb dans la liste des blocks libres *) let free_block nb = let buffer = Array.create D.block_size 0 in if super_block.free_blocks.nb_free == D.block_size - 1 then begin D.read nb buffer 0; buffer.(0) <- super_block.free_blocks.head; D.write nb buffer 0; super_block.free_blocks.head <- nb; super_block.free_blocks.nb_free <- 0 end else begin super_block.free_blocks.nb_free <- super_block.free_blocks.nb_free + 1; D.read super_block.free_blocks.head buffer 0; buffer.(super_block.free_blocks.nb_free) <- nb; D.write super_block.free_blocks.head buffer 0 end;; |