This change seems to have a positive impact in the reading phase. I guess something similar could be done for writing, but first I wanted to check with you if the idea of the patch was acceptable.
Another change that could be interesting is to remove the call to g_return_val_if_fail (cts, 0), which makes GCC inline the function. I think the condition belongs at the caller.
However these gains are not terrible. At this point I can't see any more low-level tweaking that would improve my (admitedly basic) use cases by any observable measure, so I'm stopping here until I find a bottle neck during regular usage of Gtkpod. I'm already using it more often, now that it's speedier :-)