Just as a followup to this. The process that I am using to do the upgrade is as follows:
1. Install Postgres 9.3 in /opt dir. 2. In 9.0 instance update spclocation in pg_tablespace. 3. Update the symlinks in the pg_tblspace folder. 4. Move the tablespace folders to new location. 5. Run pg_upgrade. 6. Test upgrade results on 9.3 cluster. 7. Run the sh files created by pg_upgrade. 8. Uninstall Postgres 9.3 in /opt dir. 9. Install Postgres 9.3 in default location. 10. Enjoy Postgres 9.3.
For completeness, the new location you are moving the tablespaces to, is that in or out of $PGDATA?
The new location is /usr/local/pgsql/tablespaces/
FYI, from comments over on --hackers, I believe Bruce Momjian may offer some insight on what is going on.
I could actually move the 9.0 cluster after moving the table spaces and install 9.3 in the default location as the documentation shows. But I haven't experimented with that scenario yet.