The simple method:
- delete the Linux swap partition
- create an extended partition in the 400 GB of free space
- create a logical partition for Linux swap
- create a logical partition for data using up the rest of the free space
This will leave a hole where your swap partition used to be. You can extend your first Linux partition to use up that space, though, so long as you are using ext3 or XFS on that partition.
Your partitions will be renamed/renumbered, so you will have to edit your /etc/fstab in both Linux and FreeBSD. In Linux, it will show as:
- /dev/sda1 Linux
- /dev/sda2 Linux
- /dev/sda3 FreeBSD
- /dev/sda5 Linux swap
- /dev/sda6 data
In FreeBSD, it will be something like:
- /dev/sd0s1 Linux
- /dev/sd0s2 Linux
- /dev/sd0s3 FreeBSD
- /dev/sd0s5 Linux swap
- /dev/sd0s6 data