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)
committerD Brashear <shadow@your-file-system.com>
Wed, 15 Oct 2014 14:51:28 +0000 (10:51 -0400)
commit5815ee92a41cdcf105741d834042a5617dc4c219
tree60eeb4ef7fe39ddc13fcb13fa34ec656ba3b2c22
parent6a23ca5b6e8bcaf881be7a4c50bfba72d001e6cd
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.

Change-Id: I5558c64760e4cad2bd3dc648067d81020afc69b6
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>
src/afs/LINUX/osi_vnodeops.c