Linux 3.17: Deal with d_splice_alias errors
authorMarc Dionne <marc.dionne@your-file-system.com>
Thu, 25 Sep 2014 10:52:12 +0000 (07:52 -0300)
committerStephan Wiesand <stephan.wiesand@desy.de>
Thu, 6 Nov 2014 12:14:50 +0000 (07:14 -0500)
commit663bdfcb16ab742ef12acca110f279b749f15586
tree8c18b52831ab8bb4f8ad1b1790a6aaaf4b6fb3f3
parent75f36df74bb3c13aadb047163b93d6c24436f784
Linux 3.17: Deal with d_splice_alias errors

In 3.17 the logic in d_splice_alias has changed.  Of interest to
us is the fact that it will now return an EIO error if it finds
an existing connected directory for the dentry, where it would
previously have added a new alias for it.  As a result the end
user can get EIO errors when accessing any file in a volume
if the volume was first accessed through a different path (ex:
RO path vs RW path).

This commit just restores the old behaviour, adding the directory
alias manually in the error case, which is what older versions
of d_splice_alias used to do.

Reviewed-on: http://gerrit.openafs.org/11492
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Perry Ruiter <pruiter@sinenomine.net>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: D Brashear <shadow@your-file-system.com>
(cherry picked from commit 5815ee92a41cdcf105741d834042a5617dc4c219)

Change-Id: Ie86009ede93255c85fcf640af14c598fe1e42ca9
Reviewed-on: http://gerrit.openafs.org/11550
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/LINUX/osi_vnodeops.c