diff options
author | Jeff Layton <jeff.layton@primarydata.com> | 2020-11-30 23:03:15 +0100 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2020-12-09 15:39:38 +0100 |
commit | ba5e8187c55555519ae0b63c0fb681391bc42af9 (patch) | |
tree | faf38e3d92e1e1b9f96571a52c4c53810e2fd394 /fs/nfsd/export.c | |
parent | nfsd: add a new EXPORT_OP_NOWCC flag to struct export_operations (diff) | |
download | linux-ba5e8187c55555519ae0b63c0fb681391bc42af9.tar.xz linux-ba5e8187c55555519ae0b63c0fb681391bc42af9.zip |
nfsd: allow filesystems to opt out of subtree checking
When we start allowing NFS to be reexported, then we have some problems
when it comes to subtree checking. In principle, we could allow it, but
it would mean encoding parent info in the filehandles and there may not
be enough space for that in a NFSv3 filehandle.
To enforce this at export upcall time, we add a new export_ops flag
that declares the filesystem ineligible for subtree checking.
Signed-off-by: Jeff Layton <jeff.layton@primarydata.com>
Signed-off-by: Lance Shelton <lance.shelton@hammerspace.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'fs/nfsd/export.c')
-rw-r--r-- | fs/nfsd/export.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index 21e404e7cb68..81e7bb12aca6 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c @@ -408,6 +408,12 @@ static int check_export(struct inode *inode, int *flags, unsigned char *uuid) return -EINVAL; } + if (inode->i_sb->s_export_op->flags & EXPORT_OP_NOSUBTREECHK && + !(*flags & NFSEXP_NOSUBTREECHECK)) { + dprintk("%s: %s does not support subtree checking!\n", + __func__, inode->i_sb->s_type->name); + return -EINVAL; + } return 0; } |