Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Apr 2021 18:33:42 +0000
From:      bugzilla-noreply@freebsd.org
To:        bugs@FreeBSD.org
Subject:   [Bug 255061] [PATCH] Proof of concept nested mounts for automounter -hosts map
Message-ID:  <bug-255061-227@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D255061

            Bug ID: 255061
           Summary: [PATCH] Proof of concept nested mounts for automounter
                    -hosts map
           Product: Base System
           Version: 12.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: kern
          Assignee: bugs@FreeBSD.org
          Reporter: kreuter@progn.net

Created attachment 224112
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D224112&action=
=3Dedit
Extend automountd, autounmountd, and autofs to understand nested automounted
mount points.

(This is perhaps a duplicate of bug #195564, but I don't know whether the
project prefers reopening things vs. new reports.)

I'm interested in enhancing the automounter to be able to handle
nested/hierarchical keys in the -hosts map (mostly as a complement to zfs,
which makes it convenient to organize data sets in nested hierarchies), so =
I'm
attaching a working proof-of-concept implementation of the capability.

This picture shows the net result on a test machine that exports some zfs
shares rooted at /t to itself:

# mount | grep /net
map -hosts on /net (autofs)
localhost:/t/a on /net/localhost/t/a (nfs, nosuid, automounted)
map -hosts on /net/localhost/t/a/b (autofs, automounted)
localhost:/t/a/b on /net/localhost/t/a/b (nfs, nosuid, automounted)
map -hosts on /net/localhost/t/a/b/c (autofs, automounted)

That is, I've added the idea of "automounted autofs" mount points. Because
they're automounted, they are created dynamically by automountd and destroy=
ed
by autounmountd. Because they're autofs mounts, they eventually cause somet=
hing
else to get mounted.

The attachment is a tar file, here's a description of its contents:

report.txt -- this PR writeup.

notes.txt -- detailed description of the approach, limitations, future work

automountd.diff -- add the notion of automounted autofs mounts

autounmountd.diff -- teach autounmountd about unmount order dependencies.

autofs.diff -- have an automounted autofs pass getattr calls through.

These diffs apply against the releng-12.2 branch (it's what I was running w=
hen
I started), but should be pretty cleanly applicable to CURRENT or HEAD, sin=
ce
not much has changed in the automounter.

Note that the diffs are named "logically"; in fact the first 2 diffs touch
multiple files in usr.sbin/autofs, and and must be applied in the order I've
mentioned them.

This set of changes is lightly tested, but does what I want it to so far un=
der
repeated, but manual, testing. That said, the approach I've taken isn't the
only conceivable way to do things; it was just the shortest path I could th=
ink
of from what was there to the behavior I wanted to see.

Anyhow, there's work to do before this might be merge-worthy (e.g., I haven=
't
gotten to "automount -u" yet.) If there's an interest in incorporating this
approach, I'd be very happy to iterate on this effort, ideally with some
guidance/help from those who know this stuff.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-255061-227>