aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_xdr.h
diff options
context:
space:
mode:
authorBryan Schumaker <bjschuma@netapp.com>2011-03-24 13:12:29 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2011-03-24 13:52:41 -0400
commit5a5ea0d485c9715c86bf858bbdc5f6d373b3db88 (patch)
tree0aef824c36b7eb6eac6ea706c4c9a33930128ee3 /include/linux/nfs_xdr.h
parent7c5130588d691a3b34d02312f1bd1b6d56fe0100 (diff)
NFS: Add secinfo procedure
This patch adds the nfs4 operation secinfo as a valid nfs rpc operation. Signed-off-by: Bryan Schumaker <bjschuma@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/nfs_xdr.h')
-rw-r--r--include/linux/nfs_xdr.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 71ee6799db9b..3f32bf175840 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -3,6 +3,7 @@
3 3
4#include <linux/nfsacl.h> 4#include <linux/nfsacl.h>
5#include <linux/nfs3.h> 5#include <linux/nfs3.h>
6#include <linux/sunrpc/gss_api.h>
6 7
7/* 8/*
8 * To change the maximum rsize and wsize supported by the NFS client, adjust 9 * To change the maximum rsize and wsize supported by the NFS client, adjust
@@ -14,6 +15,9 @@
14#define NFS_DEF_FILE_IO_SIZE (4096U) 15#define NFS_DEF_FILE_IO_SIZE (4096U)
15#define NFS_MIN_FILE_IO_SIZE (1024U) 16#define NFS_MIN_FILE_IO_SIZE (1024U)
16 17
18/* Forward declaration for NFS v3 */
19struct nfs4_secinfo_flavors;
20
17struct nfs_fsid { 21struct nfs_fsid {
18 uint64_t major; 22 uint64_t major;
19 uint64_t minor; 23 uint64_t minor;
@@ -936,6 +940,38 @@ struct nfs4_fs_locations_res {
936 struct nfs4_sequence_res seq_res; 940 struct nfs4_sequence_res seq_res;
937}; 941};
938 942
943struct nfs4_secinfo_oid {
944 unsigned int len;
945 char data[GSS_OID_MAX_LEN];
946};
947
948struct nfs4_secinfo_gss {
949 struct nfs4_secinfo_oid sec_oid4;
950 unsigned int qop4;
951 unsigned int service;
952};
953
954struct nfs4_secinfo_flavor {
955 unsigned int flavor;
956 struct nfs4_secinfo_gss gss;
957};
958
959struct nfs4_secinfo_flavors {
960 unsigned int num_flavors;
961 struct nfs4_secinfo_flavor flavors[0];
962};
963
964struct nfs4_secinfo_arg {
965 const struct nfs_fh *dir_fh;
966 const struct qstr *name;
967 struct nfs4_sequence_args seq_args;
968};
969
970struct nfs4_secinfo_res {
971 struct nfs4_secinfo_flavors *flavors;
972 struct nfs4_sequence_res seq_res;
973};
974
939#endif /* CONFIG_NFS_V4 */ 975#endif /* CONFIG_NFS_V4 */
940 976
941struct nfstime4 { 977struct nfstime4 {
@@ -1118,6 +1154,7 @@ struct nfs_rpc_ops {
1118 struct iattr *iattr); 1154 struct iattr *iattr);
1119 int (*init_client) (struct nfs_client *, const struct rpc_timeout *, 1155 int (*init_client) (struct nfs_client *, const struct rpc_timeout *,
1120 const char *, rpc_authflavor_t, int); 1156 const char *, rpc_authflavor_t, int);
1157 int (*secinfo)(struct inode *, const struct qstr *, struct nfs4_secinfo_flavors *);
1121}; 1158};
1122 1159
1123/* 1160/*