Hello Don,
thanks very much for further elaborating on this. I completely forgot to mention, the taget side is lio / targetcli. Sorry for this.
Indeed I've got sidetracked by the non-flash notion of iscsiadm. But this refers to something else - probably to those mysterious flashnodes mentioned in the man page.
The target lun is a sparse file on a xfs filesystem (ontop of a md0 raid, but with trim enabled: raid456.devices_handle_discard_safely=Y)
The filesystem on the lun itself is f2fs. That does report discard capabilities already during mkfs time. At least, if -t=1 is specified.
Now I did a quick test with deleting half of the mounted lun, and indeed, the real size of beforementioned sparse file shrunk. Took a while, but finally I can confirm, setting emulate_tpu=1 on the target side does do the trick. If the backend supports it, of course.
I would suspect, it would work the same way for block based backstores (thin provisioned lvm, sparse zvols), but currently I have no means to verify this.
Just for future reference, as I have had troubles correctly interviewing google about this.