[RFC] Reinstate NFS exportability for JFFS2.
Chuck Lever
chuck.lever at oracle.com
Thu Jul 31 21:31:29 EDT 2008
On Thu, Jul 31, 2008 at 9:00 PM, David Woodhouse <dwmw2 at infradead.org> wrote:
> On Thu, 2008-07-31 at 20:53 -0400, Chuck Lever wrote:
>> For now it is sufficient, IMO. NFSv4 doesn't implement a readdirplus
>> operation, and the performance benefits of NFSv3 readdirplus are
>> equivocal -- there isn't a strong desire to replicate the complexity
>> of NFSv3 readdirplus in NFSv4. I'm not even sure you can do it even
>> with a single compound RPC, so even in the long run NFSv4 may not ever
>> have the locking issues that NFSv3 does here.
>
> AFAICT NFSv4 does have the same recursion issues already. The call trace
> goes fs->readdir() ... nfsd4_encode_dirent() ...
> nfsd4_encode_dirent_fattr() ... lookup_one_len() ... fs->lookup().
>
> Or am I mistaken?
It looks like it needs a directory entry's dentry for a couple of reasons:
1. To determine whether a directory entry is a mount point
2. If the client has asked for file handles (via a bitmask) for the
directory entries
So, yep, you're right. NFSv4 will hit this too.
As I recall, the Linux NFSv4 client doesn't use
FATTR4_WORD0_FILEHANDLE during NFSv4 READDIR for the reasons I stated
earlier; and it only uses FATTR4_WORD0_FSID during GETATTR. Other
clients might use these during a READDIR however.
--
"Alright guard, begin the unnecessarily slow-moving dipping mechanism."
--Dr. Evil
More information about the linux-mtd
mailing list