Dont check for NFS errors in the LOOKUP during READDIRPLUS emulation
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 13 Mar 2014 04:00:08 +0000 (21:00 -0700)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Thu, 13 Mar 2014 04:00:08 +0000 (21:00 -0700)
commitf66ff9931d7bb7e1b6958db8d599c9040d3eb822
tree89572b784ad89560396ac635bc028ec3a2a67d2c
parent3af0c022374b0e73cb2f3cf88446517ffbbd6bab
Dont check for NFS errors in the LOOKUP during READDIRPLUS emulation

On servers with extended attributes, a server copuld be set up to
deny READ-ATTRIBUTES for the libnfs user.
This means that READDIRPLUS will no longer work since it will need to
stat() and thus READ-ATTRIBUTE in order to prepare the response.

Libnfs has READDIRPLUS emulation for the cases where this command fails
by switching to old READDIR to scan all the file names and then a LOOKUP loop for getting the file attributes.

Most of the time the purpose for this emulation is to handle the case where the server simply does not support READDIRPLUS at all, which sometimes is the case for embedded systems with userspace nfs servers.
In this case, where files just have READ-ATTRIBUTE deny for the libnfs user,
this will also fail and trigger the fallback to READDIR + LOOKUP-loop.

If the LOOKUP fails for this loop, then just ignore trying to update the attributes we have for this object, but do not fail the actual READDIRPLUS emulation.

This addresses a permissions issue reported by a XBMC user in issue #60
lib/libnfs.c