autofs multi-map regression

From: Dick Streefland
Date: Fri Jun 16 2017 - 06:27:50 EST


After a recent upgrade of a Ubuntu xenial machine, a particular
autofs multi-map mount setup stopped working. A simplified example is:

::::::::::::::
auto.master
::::::::::::::
/net /etc/auto.net
::::::::::::::
auto.net
::::::::::::::
localhost / :/ /loc :/loc

Accessing /net/localhost/loc should trigger two nested bind mounts on
/net/localhost and /net/localhost/loc, but with the new kernel, it fails
with ELOOP:

$ ls /net/localhost/loc
ls: cannot open directory '/net/localhost/loc': Too many levels of symbolic links

The problem is related to the upgrade of the Ubuntu xenial kernel from
4.4.0-38.57 to 4.4.0-78.99. I bisected the regression to commit
731ac92843877f3633325203abc942193c1e9001, which is a Ubuntu backport
of this upstream kernel commit:

commit 1064f874abc0d05eeed8993815f584d847b72486
Author: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
Date: Fri Jan 20 18:28:35 2017 +1300

mnt: Tuck mounts under others instead of creating shadow/side mounts.

--
Dick