A couple of things that don't work: iscsitadm modify target -z
The easy bit: Make the zvol bigger:
zfs set volsize=200G tank/iscsi/thevol
Now we have to hack around in the iscsi parameters file: Locate the /etc/iscsi/tgt/
zfs get -Hp volsize tank/iscsi/thevol | perl -lane 'printf("%llx", $F/512)'
Once that's done, apparently you have to bounce the iscsitgtd to get it to reread the params file.
Then on to the initiator...
format c3tAREALLYLONGSTRINGOFDIGITSFORTHEDISKGUIDd0s0 and changing the parameters won't work, since I'm using EFI labels and it says very strongly
Unable to get current partition map.
Cannot label disk while it has mounted partitions.
So I have to go in the other way. While I'm in format, print out the current partition table, and make note of the Last Sectors for the slices. Also, run prtvtoc against the disk to get any other useful bits.
Then I can make the actual partition changes with fmthard:
fmthard -s - /dev/rdsk/c3tAREALLYLONGSTRINGOFDIGITSFORTHEDISKGUIDd0s0
At first, just copy in the line(s) for the slices you already have, but move slice 8 to the end of the disk:
* First Sector Last
* Partition Tag Flags Sector Count Sector Mount Directory
0 2 00 34 251641754 251641787 /zones/mars/data
8 11 00 419413982 16384 419430365
Then (check it in format to make sure the disk is still healthy) change the Last sector and sector count for the real partition. (Last is s8's first -1, and the sector count is s8's first -34)
Then it's a simple growfs -M /zones/mars/data /dev/rdsk/c3tAREALLYLONGSTRINGOFDIGITSFORTHEDISKGUIDd0s0