Commit 5837f6df authored by Weston Andros Adamson's avatar Weston Andros Adamson Committed by Trond Myklebust

NFS: stop using NFS_MOUNT_SECFLAVOUR server flag

Since the parsed sec= flavor is now stored in nfs_server->auth_info,
we no longer need an nfs_server flag to determine if a sec= option was
used.

This flag has not been completely removed because it is still needed for
the (old but still supported) non-text parsed mount options ABI
compatability.
Signed-off-by: default avatarWeston Andros Adamson <dros@netapp.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 0f5f49b8
...@@ -1051,6 +1051,7 @@ struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *data, ...@@ -1051,6 +1051,7 @@ struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *data,
{ {
struct nfs_client *parent_client; struct nfs_client *parent_client;
struct nfs_server *server, *parent_server; struct nfs_server *server, *parent_server;
bool auth_probe;
int error; int error;
dprintk("--> nfs4_create_referral_server()\n"); dprintk("--> nfs4_create_referral_server()\n");
...@@ -1083,8 +1084,9 @@ struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *data, ...@@ -1083,8 +1084,9 @@ struct nfs_server *nfs4_create_referral_server(struct nfs_clone_mount *data,
if (error < 0) if (error < 0)
goto error; goto error;
error = nfs4_server_common_setup(server, mntfh, auth_probe = parent_server->auth_info.flavor_len < 1;
!(parent_server->flags & NFS_MOUNT_SECFLAVOUR));
error = nfs4_server_common_setup(server, mntfh, auth_probe);
if (error < 0) if (error < 0)
goto error; goto error;
......
...@@ -390,7 +390,7 @@ struct vfsmount *nfs4_submount(struct nfs_server *server, struct dentry *dentry, ...@@ -390,7 +390,7 @@ struct vfsmount *nfs4_submount(struct nfs_server *server, struct dentry *dentry,
if (client->cl_auth->au_flavor != flavor) if (client->cl_auth->au_flavor != flavor)
flavor = client->cl_auth->au_flavor; flavor = client->cl_auth->au_flavor;
else if (!(server->flags & NFS_MOUNT_SECFLAVOUR)) { else if (server->auth_info.flavor_len == 0) {
rpc_authflavor_t new = nfs4_negotiate_security(dir, name); rpc_authflavor_t new = nfs4_negotiate_security(dir, name);
if ((int)new >= 0) if ((int)new >= 0)
flavor = new; flavor = new;
......
...@@ -2920,7 +2920,7 @@ int nfs4_proc_get_rootfh(struct nfs_server *server, struct nfs_fh *fhandle, ...@@ -2920,7 +2920,7 @@ int nfs4_proc_get_rootfh(struct nfs_server *server, struct nfs_fh *fhandle,
if (status != -NFS4ERR_WRONGSEC) if (status != -NFS4ERR_WRONGSEC)
break; break;
/* Did user force a 'sec=' mount option? */ /* Did user force a 'sec=' mount option? */
if (server->flags & NFS_MOUNT_SECFLAVOUR) if (server->auth_info.flavor_len > 0)
break; break;
default: default:
status = nfs4_do_find_root_sec(server, fhandle, info); status = nfs4_do_find_root_sec(server, fhandle, info);
...@@ -3180,7 +3180,7 @@ static int nfs4_proc_lookup_common(struct rpc_clnt **clnt, struct inode *dir, ...@@ -3180,7 +3180,7 @@ static int nfs4_proc_lookup_common(struct rpc_clnt **clnt, struct inode *dir,
if (client != *clnt) if (client != *clnt)
goto out; goto out;
/* No security negotiation if the user specified 'sec=' */ /* No security negotiation if the user specified 'sec=' */
if (NFS_SERVER(dir)->flags & NFS_MOUNT_SECFLAVOUR) if (NFS_SERVER(dir)->auth_info.flavor_len > 0)
goto out; goto out;
client = nfs4_create_sec_client(client, dir, name); client = nfs4_create_sec_client(client, dir, name);
if (IS_ERR(client)) if (IS_ERR(client))
......
...@@ -1067,7 +1067,6 @@ static int nfs_parse_security_flavors(char *value, ...@@ -1067,7 +1067,6 @@ static int nfs_parse_security_flavors(char *value,
return 0; return 0;
} }
mnt->flags |= NFS_MOUNT_SECFLAVOUR;
mnt->auth_info.flavors[0] = pseudoflavor; mnt->auth_info.flavors[0] = pseudoflavor;
mnt->auth_info.flavor_len = 1; mnt->auth_info.flavor_len = 1;
return 1; return 1;
...@@ -2332,7 +2331,7 @@ static int nfs_compare_mount_options(const struct super_block *s, const struct n ...@@ -2332,7 +2331,7 @@ static int nfs_compare_mount_options(const struct super_block *s, const struct n
goto Ebusy; goto Ebusy;
if (a->acdirmax != b->acdirmax) if (a->acdirmax != b->acdirmax)
goto Ebusy; goto Ebusy;
if (b->flags & NFS_MOUNT_SECFLAVOUR && if (b->auth_info.flavor_len > 0 &&
clnt_a->cl_auth->au_flavor != clnt_b->cl_auth->au_flavor) clnt_a->cl_auth->au_flavor != clnt_b->cl_auth->au_flavor)
goto Ebusy; goto Ebusy;
return 1; return 1;
......
...@@ -60,7 +60,7 @@ struct nfs_mount_data { ...@@ -60,7 +60,7 @@ struct nfs_mount_data {
#define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */ #define NFS_MOUNT_BROKEN_SUID 0x0400 /* 4 */
#define NFS_MOUNT_NOACL 0x0800 /* 4 */ #define NFS_MOUNT_NOACL 0x0800 /* 4 */
#define NFS_MOUNT_STRICTLOCK 0x1000 /* reserved for NFSv4 */ #define NFS_MOUNT_STRICTLOCK 0x1000 /* reserved for NFSv4 */
#define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 */ #define NFS_MOUNT_SECFLAVOUR 0x2000 /* 5 non-text parsed mount data only */
#define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */ #define NFS_MOUNT_NORDIRPLUS 0x4000 /* 5 */
#define NFS_MOUNT_UNSHARED 0x8000 /* 5 */ #define NFS_MOUNT_UNSHARED 0x8000 /* 5 */
#define NFS_MOUNT_FLAGMASK 0xFFFF #define NFS_MOUNT_FLAGMASK 0xFFFF
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment