Linux: d_splice_alias may drop inode reference on error
authorMarc Dionne <marc.dionne@your-file-system.com>
Thu, 18 Dec 2014 13:43:22 +0000 (08:43 -0500)
committerJeffrey Altman <jaltman@your-file-system.com>
Thu, 22 Jan 2015 15:39:59 +0000 (10:39 -0500)
commit15260c7fdc5ac8fe9fb1797c8e383c665e9e0ccd
treee87725830afda8bb6d39fd0bf28e2b77e385e051
parentb9d86a12d1fccf93f0663b06a317a01811d981d8
Linux: d_splice_alias may drop inode reference on error

d_splice_alias now drops the inode reference on error, so we
need to grab an extra one to make sure that the inode doesn't
go away, and release it when done if there was no error.

For kernels that may not drop the reference, provide an
additional iput() within an ifdef.  This could be hooked up
to a configure option to allow building a module for a kernel
that is known not to drop the reference on error.  That hook
is not provided here.  Affected kernels should be the early
3.17 ones (3.17 - 3.17.2); 3.16 and older kernels should not
return errors here.

[kaduk@mit.edu add configure option to control behavior, which
is mandatory on non-buildbot linux systems]

Change-Id: Id1786ac2227b4d8e0ae801fe59c15a0ecd975bed
Reviewed-on: http://gerrit.openafs.org/11643
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Michael Laß <lass@mail.uni-paderborn.de>
Reviewed-by: Jeffrey Altman <jaltman@your-file-system.com>
acinclude.m4
src/afs/LINUX/osi_vnodeops.c