2015-04-05 15:13:35

by Kinglong Mee

[permalink] [raw]
Subject: [PATCH] nfsd: clear NFSEXP_PNFS flags if not supports pnfs in kernel

nfsd should not show "pnfs" flag in proc file if the filesystem
does not support pnfs.

# cat /proc/fs/nfsd/exports
# Version 1.1
# Path Client(Flags) # IPs
/testfs *(rw,insecure,no_root_squash,sync,wdelay,no_subtree_check,pnfs,fsid=0,uuid=37b07525:dc5e4203:99cc71b0:3df9dfa5,sec=1)


Signed-off-by: Kinglong Mee <[email protected]>
---
fs/nfsd/nfs4layouts.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/fs/nfsd/nfs4layouts.c b/fs/nfsd/nfs4layouts.c
index 6904213..f4c9bf3 100644
--- a/fs/nfsd/nfs4layouts.c
+++ b/fs/nfsd/nfs4layouts.c
@@ -125,6 +125,8 @@ void nfsd4_setup_layout_type(struct svc_export *exp)
sb->s_export_op->map_blocks &&
sb->s_export_op->commit_blocks)
exp->ex_layout_type = LAYOUT_BLOCK_VOLUME;
+ else
+ exp->ex_flags &= ~NFSEXP_PNFS;
}

static void
--
2.3.4



2015-04-06 12:02:48

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] nfsd: clear NFSEXP_PNFS flags if not supports pnfs in kernel

On Sun, Apr 05, 2015 at 11:13:27PM +0800, Kinglong Mee wrote:
> nfsd should not show "pnfs" flag in proc file if the filesystem
> does not support pnfs.

Hmm, do we want to silently clear or reject it? Either way the
!CONFIG_NFSD_PNFS stub needs to do the same.

2015-04-06 19:51:54

by J. Bruce Fields

[permalink] [raw]
Subject: Re: [PATCH] nfsd: clear NFSEXP_PNFS flags if not supports pnfs in kernel

On Mon, Apr 06, 2015 at 05:02:47AM -0700, Christoph Hellwig wrote:
> On Sun, Apr 05, 2015 at 11:13:27PM +0800, Kinglong Mee wrote:
> > nfsd should not show "pnfs" flag in proc file if the filesystem
> > does not support pnfs.
>
> Hmm, do we want to silently clear or reject it? Either way the
> !CONFIG_NFSD_PNFS stub needs to do the same.

There's a note:

/* quietly ignore unknown words and anything
* following. Newer user-space can try to set
* new values, then see what the result was.
*/

Not sure if that's the best approach, but I guess we should stick with
it.

--b.