Can only access 2.2GB of internal storage from Windows
This is a known issue with various Galaxy S models after upgrading to 2.2.  I don't think anyone's found the cause, but this fix should work (did for me on my Vibrant) and is relatively simple.  Make sure to do a backup first if you want, preferably using ClockworkMOD / Nandroid, because this will wipe out everything except your external SD card.  And make sure you have good drivers installed.


Download stock 2.2 firmware, such as from this XDA post for AT&amp;T (first link) or this XDA post for Rogers (first link, "Odin Flashable").  Do not unzip it.
Download Odin (for Windows.  If you have no access to Windows, use Heimdall and modify steps 4+ accordingly).
Download the 512 PIT file.
Put your phone into download mode:

Take out the battery.
Attach the phone to your computer via USB.
Press and hold both volume buttons.  While holding:

Insert the battery.
Click the power button.
Wait for download mode to show up (yellow triangle with an android in it).  


Start Odin.
Load the firmware .zip file into the PDA field of Odin.
Load the 512 PIT file into the PIT field of Odin.
Ensure "Re-partition" is checked.
Make sure Odin shows your device connected (Yellow box with text something like "0:[COM1]").  If not, disconnect the phone from USB and immediately re-connect.
Click Start.
Wait till Odin says it's done, then disconnect your phone.  Or if Odin shows an error, reboot your phone and start from step 4 again.  (Sometimes this just happens).