From: Marc Dionne Date: Wed, 29 Jul 2015 12:03:14 +0000 (-0300) Subject: Linux: Only use automount for volume roots X-Git-Tag: upstream/1.6.15^2~5 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=feab09080ec050b3026eff966352b058e2c2295b;p=packages%2Fo%2Fopenafs.git Linux: Only use automount for volume roots As long as we avoid using directory aliases when crossing a mount point (at the volume root), we should always get to a given non root directory with the same dentry. The mechanism added by commit de381aa0 ("Linux: Make dir dentry aliases act like symlinks") is therefore only really necessary for a volume root. With kernel 4.2 it is not possible to tweak the "total link count", resulting in ELOOP errors when looking up a path with 40 or more directories that are being looked up for the first time. With this change, only mountpoints will count against the limit. Reviewed-on: http://gerrit.openafs.org/11945 Reviewed-by: Benjamin Kaduk Reviewed-by: Daria Brashear Tested-by: BuildBot (cherry picked from commit 05f64de7d723a8d5430d9b5928c2025838a6fa52) Change-Id: I16e855c8322174604288b7d440b342951dd3a015 Reviewed-on: http://gerrit.openafs.org/11989 Tested-by: BuildBot Reviewed-by: Benjamin Kaduk Reviewed-by: Stephan Wiesand --- diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 3c0cb33e0..ae0513c69 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -1555,7 +1555,9 @@ afs_linux_lookup(struct inode *dip, struct dentry *dp) d_prune_aliases(ip); #ifdef STRUCT_DENTRY_OPERATIONS_HAS_D_AUTOMOUNT - ip->i_flags |= S_AUTOMOUNT; + /* Only needed if this is a volume root */ + if (vcp->mvstat == 2) + ip->i_flags |= S_AUTOMOUNT; #endif } /*