You should not use
df because it shows the size as reported by the filesystem (in this case, ext4).
dumpe2fs -h /dev/mapper/ExistingExt4 command to find out the real size of the partition. The
-h option makes
dumpe2fs show super block info without a lot other unnecessary details. From the output, you need the block count and block size.
Block count: 19506168
Reserved block count: 975308
Free blocks: 13750966
Free inodes: 4263842
First block: 0
Block size: 4096
Multiplicating these values will give the partition size in bytes. The above numbers happen to be a perfect multiple of 1024:
$ python -c 'print 19506168.0 * 4096 / 1024'
Since you want to shrink the partition by 15 GiB (which is 15 MiB times 1 KiB):
$ python -c 'print 19506168.0 * 4096 / 1024 - 15 * 1024 * 1024'
resize2fs accepts several kinds of suffixes, one of them being
K for "1024 bytes", the command for shrinking the partition to 62296032 KiB becomes:
resize2fs -p /dev/mapper/ExistingExt4 62296032K
Without unit, the number will be interpreted as a multiple of the filesystem's blocksize (4096 in this case). See man resize2fs(8)