Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 74dd34e6 authored by Steve Dickson's avatar Steve Dickson Committed by Trond Myklebust
Browse files

NFS: Added support to turn off the NFSv3 READDIRPLUS RPC.



READDIRPLUS can be a performance hindrance when the client is working with
large directories. In addition, some servers still have bugs in their
implementations (e.g. Tru64 returns wrong values for the fsid).

Add a mount flag to enable users to turn it off at mount time following the
implementation in Apple's NFS client.

Signed-off-by: default avatarSteve Dickson <steved@redhat.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 00a6e7bb
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -618,6 +618,7 @@ static int nfs_init_server(struct nfs_server *server, const struct nfs_mount_dat
	if (clp->cl_nfsversion == 3) {
		if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN)
			server->namelen = NFS3_MAXNAMLEN;
		if (!(data->flags & NFS_MOUNT_NORDIRPLUS))
			server->caps |= NFS_CAP_READDIRPLUS;
	} else {
		if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN)
+1 −0
Original line number Diff line number Diff line
@@ -290,6 +290,7 @@ static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss,
		{ NFS_MOUNT_NOAC, ",noac", "" },
		{ NFS_MOUNT_NONLM, ",nolock", "" },
		{ NFS_MOUNT_NOACL, ",noacl", "" },
		{ NFS_MOUNT_NORDIRPLUS, ",nordirplus", "" },
		{ 0, NULL, NULL }
	};
	const struct proc_nfs_info *nfs_infop;
+1 −0
Original line number Diff line number Diff line
@@ -61,6 +61,7 @@ struct nfs_mount_data {
#define NFS_MOUNT_NOACL		0x0800	/* 4 */
#define NFS_MOUNT_STRICTLOCK	0x1000	/* reserved for NFSv4 */
#define NFS_MOUNT_SECFLAVOUR	0x2000	/* 5 */
#define NFS_MOUNT_NORDIRPLUS	0x4000	/* 5 */
#define NFS_MOUNT_FLAGMASK	0xFFFF

#endif