diff options
author | Bryan Schumaker <bjschuma@netapp.com> | 2011-03-24 13:12:29 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-03-24 13:52:41 -0400 |
commit | 5a5ea0d485c9715c86bf858bbdc5f6d373b3db88 (patch) | |
tree | 0aef824c36b7eb6eac6ea706c4c9a33930128ee3 /include/linux/nfs_xdr.h | |
parent | 7c5130588d691a3b34d02312f1bd1b6d56fe0100 (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.h | 37 |
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 */ | ||
19 | struct nfs4_secinfo_flavors; | ||
20 | |||
17 | struct nfs_fsid { | 21 | struct 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 | ||
943 | struct nfs4_secinfo_oid { | ||
944 | unsigned int len; | ||
945 | char data[GSS_OID_MAX_LEN]; | ||
946 | }; | ||
947 | |||
948 | struct nfs4_secinfo_gss { | ||
949 | struct nfs4_secinfo_oid sec_oid4; | ||
950 | unsigned int qop4; | ||
951 | unsigned int service; | ||
952 | }; | ||
953 | |||
954 | struct nfs4_secinfo_flavor { | ||
955 | unsigned int flavor; | ||
956 | struct nfs4_secinfo_gss gss; | ||
957 | }; | ||
958 | |||
959 | struct nfs4_secinfo_flavors { | ||
960 | unsigned int num_flavors; | ||
961 | struct nfs4_secinfo_flavor flavors[0]; | ||
962 | }; | ||
963 | |||
964 | struct nfs4_secinfo_arg { | ||
965 | const struct nfs_fh *dir_fh; | ||
966 | const struct qstr *name; | ||
967 | struct nfs4_sequence_args seq_args; | ||
968 | }; | ||
969 | |||
970 | struct 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 | ||
941 | struct nfstime4 { | 977 | struct 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 | /* |