[ 450.447517] 1507: --> nfs_d_automount()
[ 450.449513] nfs_d_automount(1507): enter
[ 450.452785] 1512: --> nfs_d_automount()
[ 450.455700] 1507: dentry=ffff880012520a80 path=/misc/salusa/scratch
[ 450.471407] SELinux: initialized (dev 0:2b, type nfs4), uses genfs_contexts
[ 450.471963] nfs_d_automount(1507): done, success
[ 450.474253] 1507: <-- nfs_d_automount() = ffff880022765640
[ 450.475581] nfs_d_automount(1512): enter
[ 450.476725] 1512: dentry=ffff880012520a80 path=/misc/salusa/scratch
[ 450.480416] follow_automount(1507): finish_automount returned 0
[ 450.490699] nfs_d_automount(1512): done, success
[ 450.493240] 1512: <-- nfs_d_automount() = ffff8800114c2000
[ 450.496763] follow_automount(1512): finish_automount returned -16
[ 472.333182] BUG: Dentry ffff880012520930{i=2,n=} still in use (1) [unmount of nfs4 0:2a]
...so follow_automount is returning -EBUSY. It seems somewhat likely that the cleanup of the second vfsmount is not completely correct in this situation.
A little more printk debugging:
[ 450.447517] 1507: --> nfs_d_automount() (1507): enter ffff880012520a8 0 path=/misc/ salusa/ scratch (1507): done, success (1512): enter ffff880012520a8 0 path=/misc/ salusa/ scratch automount( 1507): finish_automount returned 0 (1512): done, success automount( 1512): finish_automount returned -16 0{i=2,n= } still in use (1) [unmount of nfs4 0:2a]
[ 450.449513] nfs_d_automount
[ 450.452785] 1512: --> nfs_d_automount()
[ 450.455700] 1507: dentry=
[ 450.471407] SELinux: initialized (dev 0:2b, type nfs4), uses genfs_contexts
[ 450.471963] nfs_d_automount
[ 450.474253] 1507: <-- nfs_d_automount() = ffff880022765640
[ 450.475581] nfs_d_automount
[ 450.476725] 1512: dentry=
[ 450.480416] follow_
[ 450.490699] nfs_d_automount
[ 450.493240] 1512: <-- nfs_d_automount() = ffff8800114c2000
[ 450.496763] follow_
[ 472.333182] BUG: Dentry ffff88001252093
...so follow_automount is returning -EBUSY. It seems somewhat likely that the cleanup of the second vfsmount is not completely correct in this situation.