(* 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;;