This is a well known bug in SD.h, not sure why the Arduino company has not fixed it. CardInfo was written by Adafruit.
The reported value in bytes is truncated to 32-bits so it is incorrect for cards over 4 GB.
3038248960 is not 29 GB. It is 3,038,248,960 bytes, about 3 GB,