freebsd / poudriere

Port/Package build and test system
https://github.com/freebsd/poudriere/wiki
BSD 2-Clause "Simplified" License
387 stars 161 forks source link

Poudriere with ZFS sets redundant mountpoint properties on child datasets #315

Open kpaasial opened 9 years ago

kpaasial commented 9 years ago

I have set up poudriere on ZFS using the following hierarchy:

rdnzltank/poudriere 1.72G 71.8G 19K /poudriere rdnzltank/poudriere/data 176M 71.8G 21K /poudriere/data rdnzltank/poudriere/data/.m 19K 71.8G 19K /poudriere/data/.m rdnzltank/poudriere/data/cache 376K 71.8G 376K /poudriere/data/cache rdnzltank/poudriere/data/logs 34.6M 71.8G 34.6M /poudriere/data/logs rdnzltank/poudriere/data/packages 141M 71.8G 141M /poudriere/data/packages rdnzltank/poudriere/data/wrkdirs 19K 71.8G 19K /poudriere/data/wrkdirs rdnzltank/poudriere/jails 1.11G 71.8G 19K /poudriere/jails rdnzltank/poudriere/jails/releng101amd64 636M 71.8G 636M /poudriere/jails/releng101amd64 rdnzltank/poudriere/jails/releng101i386 498M 71.8G 498M /poudriere/jails/releng101i386 rdnzltank/poudriere/ports 454M 71.8G 19K /poudriere/ports rdnzltank/poudriere/ports/default 454M 71.8G 414M /poudriere/ports/default

The mountpoints for rdnzltank/poudriere/jails and rdnzltank/poudriere/jails/* are set locally as created by poudriere:

$ zfs get mountpoint rdnzltank/poudriere/jails rdnzltank/poudriere/jails/releng101amd64 NAME PROPERTY VALUE SOURCE rdnzltank/poudriere/jails mountpoint /poudriere/jails local rdnzltank/poudriere/jails/releng101amd64 mountpoint /poudriere/jails/releng101amd64 local

It would be in my opinion much simpler to just let the mountpoints to be inherited from the parent datasets, this would make it possible to relocate the whole tree by setting a new mountpoint only for the top-level dataset (rdnzltank/poudriere in my case).

bdrewery commented 9 years ago

The way the internal API works for support TMPFS, UFS and ZFS makes it less proper to not set the mountpoint. I understand what you're saying though.