Update extra-iput configure argument description
authorBenjamin Kaduk <kaduk@mit.edu>
Wed, 4 Feb 2015 15:11:29 +0000 (10:11 -0500)
committerBenjamin Kaduk <kaduk@mit.edu>
Fri, 25 Dec 2015 19:03:44 +0000 (14:03 -0500)
Commit 15260c7fdc5ac8fe9fb1797c8e383c665e9e0ccd did not function
as advertised, since the conditional which attempted to make
the configure option --(en|dis)able-linux-d_splice_alias-extra-iput
mandatory on linux checked a variable for the system type which
was not set at the time the check ran.

Subsequent discussion of this behavior produced a consensus that
there is not a need to make the configure option mandatory,
due to the narrow range of kernels affected by the bug in question,
so this follow-up commit just fixes the documentation and removes
the ineffective code.

Change-Id: I36d1f8801d355f33c3132fcab166ea76faab8e87
Reviewed-on: http://gerrit.openafs.org/11710
Reviewed-by: Anders Kaseorg <andersk@mit.edu>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

acinclude.m4

index 3f0d297..3026d31 100644 (file)
@@ -250,24 +250,21 @@ AC_ARG_ENABLE([linux-syscall-probing],
     [enable_linux_syscall_probing="maybe"])
 AC_ARG_ENABLE([linux-d_splice_alias-extra-iput],
     [AS_HELP_STRING([--enable-linux-d_splice_alias-extra-iput],
-       [Linux has introduced an incompatible behavior change in the
-        d_splice_alias function with no reliable way to determine which
-        behavior will be produced.  If Linux commit
-        51486b900ee92856b977eacfc5bfbe6565028070 (or equivalent) has been
-        applied to your kernel, disable this option.  If that commit is
-        not present in your kernel, enable this option.  We apologize
-        that you are required to know this about your running kernel.])],
+       [Linux kernels in the 3.17 series prior to 3.17.3 had a bug
+        wherein error returns from the d_splice_alias() function were
+        leaking a reference on the inode.  The bug was fixed for the
+        3.17.3 kernel, and the possibility of an error return was only
+        introduced in kernel 3.17, so only the narrow range of kernels
+        is affected.  Enable this option for builds on systems with
+        kernels affected by this bug, to manually release the reference
+        on error returns and correct the reference counting.
+        Linux commit 51486b900ee92856b977eacfc5bfbe6565028070 (or
+        equivalent) is the fix for the upstream bug, so if such a commit
+        is present, leave this option disabled.  We apologize
+        that you are required to know this about your running kernel,
+        but luckily only a narrow range of versions is affected.])],
     [],
-    [case $system in
-    *-linux*)
-       AS_IF([test "x$LOGNAME" != "xbuildslave" &&
-           test "x$LOGNAME" != "xbuildbot"],
-           [AC_ERROR([Linux users must specify either
-               --enable-linux-d_splice_alias-extra-iput or
-               --disable-linux-d_splice_alias-extra-iput])],
-           [enable_linux_d_splice_alias_extra_iput="no"])
-     esac
-    ])
+    [enable_linux_d_splice_alias_extra_iput="no"])
 AC_ARG_WITH([crosstools-dir],
     [AS_HELP_STRING([--with-crosstools-dir=path],
        [use path for native versions of rxgen, compile_et and config])