Designing with AC'97 - why does it not have a (FIFO) buffer?
Audio codecs are real time devices.  They expect you to feed them (or read from them) samples on every sample period.  The design of a simple audio codec would be a lot more complex if you moved that responsibility on to them.  Easier for you, harder and more expensive for the codec.  

One possible solution would to use a DMA engine/channel.  So put your pcm audio bits in some contiguous location in memory and point the DMA engine at those bits and your AC97 interface.  Make the dma write frequency 44.1K then let it rip.  You can do the opposite to get audio in.  

You could make this block yourself too, just having your own fifo made of internal fpga memory.  

Here's a AC97 controller core on OpenCores with external dma support http://opencores.org/project,ac97