svn commit: r344569 - in head/cddl/contrib/opensolaris: cmd/zfs lib/libzfs/common

Andriy Gapon avg at FreeBSD.org
Wed Feb 27 07:17:57 UTC 2019


On 26/02/2019 22:58, Cy Schubert wrote:
> I was talking about nested datasets, i.e. tank/freebsd/git/current and 
> tank/freebsd/git/ports are four levels deep.

We usually don't call them "nested".  In fact, I don't think that we call them
anything special because having N levels deep datasets (N > 1) is just a common
thing.  We may call them subordinate or child datasets when mentioning a
relation to a parent dataset.

> In my case the ports 
> dataset was mounted while the current dataset was not, though zfs 
> believed it was. unmounting the current dataset and remounting it, zfs 
> umount .../current; zfs mount .../current worked around the issue.

Are you sure that it was not mounted?
Have you checked that by looking at mount output?
I suspect that it was mounted, just not where you expected and its mount path
was covered by another filesystem.

E.g., lets consider this hypothetical case.
I have two same level datasets tank/freebsd/src and tank/freebsd/sys where
tank/freebsd/src is mounted at /usr/src and tank/freebsd/sys is mounted at
/usr/src/sys (a child directory of /usr/src).
If tank/freebsd/src is mounted first, then everything is okay, tank/freebsd/sys
would be mounted on top of sys directory in tank/freebsd/src.
If, however, tank/freebsd/sys is mounted first (assuming that path /usr/src/sys
exists in a root filesystem), then mounting tank/freebsd/src would simply hide
tank/freebsd/sys "below" it as /usr/src/sys would be sys directory in
tank/freebsd/src.

I guess that this is a kind of problem that could be introduced with parallel
mounting.  And I guess that this is a kind of problem that you might actually
have.  But it's just a guess.

-- 
Andriy Gapon


More information about the svn-src-head mailing list