Hi.
I just noticed that initdb -S ("Safely write all database files to disk
and exit") does (only) the following in perform_fsync:
pre_sync_fname(pdir, true);
walkdir(pg_data, pre_sync_fname);
fsync_fname(pdir, true);
walkdir(pg_data, fsync_fname);
walkdir() reads the directory and calls itself recursively for S_ISDIR
entries, or calls the function for S_ISREG entries… which means it
doesn't follow links.
Which means it doesn't fsync the contents of tablespaces.
-- Abhijit