diff options
Diffstat (limited to 'fs/nfs')
| -rw-r--r-- | fs/nfs/internal.h | 3 | ||||
| -rw-r--r-- | fs/nfs/namespace.c | 29 | ||||
| -rw-r--r-- | fs/nfs/nfs4_fs.h | 1 | ||||
| -rw-r--r-- | fs/nfs/nfs4namespace.c | 29 | ||||
| -rw-r--r-- | fs/nfs/nfs4proc.c | 1 | 
5 files changed, 30 insertions, 33 deletions
diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index d68810f6186..d6994443f28 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -286,9 +286,6 @@ extern void nfs_sb_deactive(struct super_block *sb);  extern char *nfs_path(char **p, struct dentry *dentry,  		      char *buffer, ssize_t buflen);  extern struct vfsmount *nfs_d_automount(struct path *path); -#ifdef CONFIG_NFS_V4 -rpc_authflavor_t nfs_find_best_sec(struct nfs4_secinfo_flavors *); -#endif  /* getroot.c */  extern struct dentry *nfs_get_root(struct super_block *, struct nfs_fh *, diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c index d51868e5683..2a9591b0b15 100644 --- a/fs/nfs/namespace.c +++ b/fs/nfs/namespace.c @@ -119,35 +119,6 @@ Elong:  }  #ifdef CONFIG_NFS_V4 -rpc_authflavor_t nfs_find_best_sec(struct nfs4_secinfo_flavors *flavors) -{ -	struct gss_api_mech *mech; -	struct xdr_netobj oid; -	int i; -	rpc_authflavor_t pseudoflavor = RPC_AUTH_UNIX; - -	for (i = 0; i < flavors->num_flavors; i++) { -		struct nfs4_secinfo_flavor *flavor; -		flavor = &flavors->flavors[i]; - -		if (flavor->flavor == RPC_AUTH_NULL || flavor->flavor == RPC_AUTH_UNIX) { -			pseudoflavor = flavor->flavor; -			break; -		} else if (flavor->flavor == RPC_AUTH_GSS) { -			oid.len  = flavor->gss.sec_oid4.len; -			oid.data = flavor->gss.sec_oid4.data; -			mech = gss_mech_get_by_OID(&oid); -			if (!mech) -				continue; -			pseudoflavor = gss_svc_to_pseudoflavor(mech, flavor->gss.service); -			gss_mech_put(mech); -			break; -		} -	} - -	return pseudoflavor; -} -  static struct rpc_clnt *nfs_lookup_mountpoint(struct inode *dir,  					      struct qstr *name,  					      struct nfs_fh *fh, diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 8d75021020b..53a487ee986 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h @@ -206,6 +206,7 @@ extern const struct dentry_operations nfs4_dentry_operations;  extern const struct inode_operations nfs4_dir_inode_operations;  /* nfs4namespace.c */ +rpc_authflavor_t nfs_find_best_sec(struct nfs4_secinfo_flavors *);  struct rpc_clnt *nfs4_create_sec_client(struct rpc_clnt *, struct inode *, struct qstr *);  /* nfs4proc.c */ diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c index a7f3dedc4ec..a69ee3952bb 100644 --- a/fs/nfs/nfs4namespace.c +++ b/fs/nfs/nfs4namespace.c @@ -132,6 +132,35 @@ static size_t nfs_parse_server_name(char *string, size_t len,  	return ret;  } +rpc_authflavor_t nfs_find_best_sec(struct nfs4_secinfo_flavors *flavors) +{ +	struct gss_api_mech *mech; +	struct xdr_netobj oid; +	int i; +	rpc_authflavor_t pseudoflavor = RPC_AUTH_UNIX; + +	for (i = 0; i < flavors->num_flavors; i++) { +		struct nfs4_secinfo_flavor *flavor; +		flavor = &flavors->flavors[i]; + +		if (flavor->flavor == RPC_AUTH_NULL || flavor->flavor == RPC_AUTH_UNIX) { +			pseudoflavor = flavor->flavor; +			break; +		} else if (flavor->flavor == RPC_AUTH_GSS) { +			oid.len  = flavor->gss.sec_oid4.len; +			oid.data = flavor->gss.sec_oid4.data; +			mech = gss_mech_get_by_OID(&oid); +			if (!mech) +				continue; +			pseudoflavor = gss_svc_to_pseudoflavor(mech, flavor->gss.service); +			gss_mech_put(mech); +			break; +		} +	} + +	return pseudoflavor; +} +  static rpc_authflavor_t nfs4_negotiate_security(struct inode *inode, struct qstr *name)  {  	struct page *page; diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 87af80d28a8..fa661b91e57 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c @@ -6610,7 +6610,6 @@ const struct nfs_rpc_ops nfs_v4_clientops = {  	.close_context  = nfs4_close_context,  	.open_context	= nfs4_atomic_open,  	.init_client	= nfs4_init_client, -	.secinfo	= nfs4_proc_secinfo,  };  static const struct xattr_handler nfs4_xattr_nfs4_acl_handler = {  |