Re: Why NFS enforce size limit on readdirplus

From: Trond Myklebust
Date: Fri Jun 02 2006 - 14:44:14 EST


On Fri, 2006-06-02 at 01:54 -0400, Xin Zhao wrote:
> Maybe this question is a little dumb.
>
> I am wondering why in NFS readdirplus can be used only for directories
> of size less than 8*PAGE_SIZE, otherwise, it will switch to use normal
> readdir?
>
> In nfs/inode.c, I noticed the following code:
> if (nfs_server_capable(inode, NFS_CAP_READDIRPLUS) &&
> fattr->size <= NFS_LIMIT_READDIRPLUS)
> set_bit(NFS_INO_ADVISE_RDPLUS, &NFS_FLAGS(inode));
>
> Can someone kindly explain the reason?

Efficiency: READDIRPLUS requires a lookup for each entry. If there are
too many entries, the whole thing gets really really slow...

Cheers,
Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/