I do not understand the purpose of legacy mount point.
ZFS provides a hierarchical structure of datasets within a pool. In your case you have a pool named rpool, and at least the following datasets:
rpool
rpool/ROOT
rpool/ROOT/s10x_u10_wos_17b
Each of these datasets is often a filesystem (though it can be a volume / block device instead).
Just as each of these is datasets is likely a full / independent filesystem, each can also be mounted or not mounted independently.
By default, ZFS will mount children datasets at their logical location within the parent... If the rpool dataset is mounted at /rpool (i.e: default), then you would find that the rpool/ROOT dataset mounted at /rpool/ROOT, etc...
This is controlled by the mountpoint property - run zfs get -rt filesystem mountpoint to see its current value for each dataset.
- If the value is a path, then ZFS will automatically mount the dataset at that path when the pool is imported. The default (as mentioned above) is to mount the filesystem under the parent.
- If the value is
none, then ZFS will not mount the filesystem, and the filesystem cannot be mounted using mount either.
- If the value is
legacy, then ZFS will not mount the filesystem, but you can use mount and umount to manage the filesystem's mountpoint manually. You could also use /etc/fstab to guide automatic mounting.
In your situation, the rpool/ROOT/s10x_u10_wos_17b dataset is mounted at / (i.e: it is your root filesystem). To achieve this, you could either set mountpoint=/ and let ZFS handle things, or set mountpoint=legacy and mount it explicitly.
As this is your root filesystem, letting ZFS manage it for you isn't really an option, and you'll need to specify the mountpoint explicitly.
Therefore, rpool/ROOT/s10x_u10_wos_17b has mountpoint=legacy.