storage: zfs: flexible use of 'volmode' option
storage: zfs: flexible use of 'volmode' option

There are slight differences in various ZFS implementations.
Specifically, ZFS on FreeBSD requires to set value of 'volmode'
option to 'dev' to expose volumes as raw disk device (that's what
we need) rather than geom provides, for example.

With ZFS on Linux, however, such option is not available and
volumes exposed like we need by default.

To make our implementation more flexible, only pass 'volmode'
when it's supported. Support is checked by parsing usage
information of the 'zfs get' command.

zippy2/libvirt,fabianfreyer/libvirt,nertpinx/libvirt,eskultety/libvirt,fabianfreyer/libvirt,jfehlig/libvirt,datto/libvirt,zippy2/libvirt,VenkatDatta/libvirt,olafhering/libvirt,rlaager/libvirt,crobinso/libvirt,andreabolognani/libvirt,jfehlig/libvirt,crobinso/libvirt,andreabolognani/libvirt,VenkatDatta/libvirt,datto/libvirt,fabianfreyer/libvirt,datto/libvirt,taget/libvirt,VenkatDatta/libvirt,crobinso/libvirt,libvirt/libvirt,rlaager/libvirt,andreabolognani/libvirt,nertpinx/libvirt,zippy2/libvirt,nertpinx/libvirt,libvirt/libvirt,eskultety/libvirt,eskultety/libvirt,andreabolognani/libvirt,taget/libvirt,taget/libvirt,eskultety/libvirt,jardasgit/libvirt,jardasgit/libvirt,fabianfreyer/libvirt,jfehlig/libvirt,jfehlig/libvirt,andreabolognani/libvirt,fabianfreyer/libvirt,taget/libvirt,olafhering/libvirt,zippy2/libvirt,eskultety/libvirt,crobinso/libvirt,libvirt/libvirt,jardasgit/libvirt,rlaager/libvirt,libvirt/libvirt,VenkatDatta/libvirt,nertpinx/libvirt,datto/libvirt,taget/libvirt,VenkatDatta/libvirt,olafhering/libvirt,jardasgit/libvirt,olafhering/libvirt,rlaager/libvirt,rlaager/libvirt,nertpinx/libvirt,datto/libvirt,jardasgit/libvirt