mirror of
https://github.com/torvalds/linux.git
synced 2026-06-07 14:04:54 +02:00
NFSv4: Turn off open-by-filehandle and NFS re-export for NFSv4.0
[ Upstream commit2a9d683b48] The NFSv4.0 protocol only supports open() by name. It cannot therefore be used with open_by_handle() and friends, nor can it be re-exported by knfsd. Reported-by: Chuck Lever III <chuck.lever@oracle.com> Fixes:20fa190272("nfs: add export operations") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
2f16f5b582
commit
4d065f8356
|
|
@ -1029,22 +1029,31 @@ static void nfs_fill_super(struct super_block *sb, struct nfs_fs_context *ctx)
|
||||||
if (ctx && ctx->bsize)
|
if (ctx && ctx->bsize)
|
||||||
sb->s_blocksize = nfs_block_size(ctx->bsize, &sb->s_blocksize_bits);
|
sb->s_blocksize = nfs_block_size(ctx->bsize, &sb->s_blocksize_bits);
|
||||||
|
|
||||||
if (server->nfs_client->rpc_ops->version != 2) {
|
switch (server->nfs_client->rpc_ops->version) {
|
||||||
/* The VFS shouldn't apply the umask to mode bits. We will do
|
case 2:
|
||||||
* so ourselves when necessary.
|
sb->s_time_gran = 1000;
|
||||||
|
sb->s_time_min = 0;
|
||||||
|
sb->s_time_max = U32_MAX;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
/*
|
||||||
|
* The VFS shouldn't apply the umask to mode bits.
|
||||||
|
* We will do so ourselves when necessary.
|
||||||
*/
|
*/
|
||||||
sb->s_flags |= SB_POSIXACL;
|
sb->s_flags |= SB_POSIXACL;
|
||||||
sb->s_time_gran = 1;
|
sb->s_time_gran = 1;
|
||||||
sb->s_export_op = &nfs_export_ops;
|
|
||||||
} else
|
|
||||||
sb->s_time_gran = 1000;
|
|
||||||
|
|
||||||
if (server->nfs_client->rpc_ops->version != 4) {
|
|
||||||
sb->s_time_min = 0;
|
sb->s_time_min = 0;
|
||||||
sb->s_time_max = U32_MAX;
|
sb->s_time_max = U32_MAX;
|
||||||
} else {
|
sb->s_export_op = &nfs_export_ops;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
sb->s_flags |= SB_POSIXACL;
|
||||||
|
sb->s_time_gran = 1;
|
||||||
sb->s_time_min = S64_MIN;
|
sb->s_time_min = S64_MIN;
|
||||||
sb->s_time_max = S64_MAX;
|
sb->s_time_max = S64_MAX;
|
||||||
|
if (server->caps & NFS_CAP_ATOMIC_OPEN_V1)
|
||||||
|
sb->s_export_op = &nfs_export_ops;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
sb->s_magic = NFS_SUPER_MAGIC;
|
sb->s_magic = NFS_SUPER_MAGIC;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user