tree 8e744314f14044538f8d65edc0c7bcd2a9750c3d
parent eaa2b82c3b3c938ab4635f8967d33f3e581da836
author NeilBrown <neilb@suse.com> 1499059646 +1000
committer Anna Schumaker <Anna.Schumaker@Netapp.com> 1499976009 -0400

NFS: check for nfs_refresh_inode() errors in nfs_fhget()

If an NFS server returns a filehandle that we have previously
seen, and reports a different type, then nfs_refresh_inode()
will log a warning and return an error.

nfs_fhget() does not check for this error and may return an
inode with a different type than the one that the server
reported.

This is likely to cause confusion, and is one way that
->open_context() could return a directory inode as discussed
in the previous patch.

So if nfs_refresh_inode() returns and error, return that error
from nfs_fhget() to avoid the confusion propagating.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
