diff options
author | David Howells <dhowells@redhat.com> | 2007-04-26 18:57:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2007-04-26 18:57:07 -0400 |
commit | 00d3b7a4533e367b0dc2812a706db8f9f071c27f (patch) | |
tree | f0b1ae0266267cb2c54cb11aa61ad0758ce9c0f5 /fs/afs/vlclient.c | |
parent | 436058a49e0fb91c74454dbee9cfee6fb53b4336 (diff) |
[AFS]: Add security support.
Add security support to the AFS filesystem. Kerberos IV tickets are added as
RxRPC keys are added to the session keyring with the klog program. open() and
other VFS operations then find this ticket with request_key() and either use
it immediately (eg: mkdir, unlink) or attach it to a file descriptor (open).
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'fs/afs/vlclient.c')
-rw-r--r-- | fs/afs/vlclient.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/fs/afs/vlclient.c b/fs/afs/vlclient.c index 0c7eba174836..36c1306e09e0 100644 --- a/fs/afs/vlclient.c +++ b/fs/afs/vlclient.c | |||
@@ -127,6 +127,7 @@ static int afs_deliver_vl_get_entry_by_xxx(struct afs_call *call, | |||
127 | * VL.GetEntryByName operation type | 127 | * VL.GetEntryByName operation type |
128 | */ | 128 | */ |
129 | static const struct afs_call_type afs_RXVLGetEntryByName = { | 129 | static const struct afs_call_type afs_RXVLGetEntryByName = { |
130 | .name = "VL.GetEntryByName", | ||
130 | .deliver = afs_deliver_vl_get_entry_by_xxx, | 131 | .deliver = afs_deliver_vl_get_entry_by_xxx, |
131 | .abort_to_error = afs_vl_abort_to_error, | 132 | .abort_to_error = afs_vl_abort_to_error, |
132 | .destructor = afs_flat_call_destructor, | 133 | .destructor = afs_flat_call_destructor, |
@@ -136,6 +137,7 @@ static const struct afs_call_type afs_RXVLGetEntryByName = { | |||
136 | * VL.GetEntryById operation type | 137 | * VL.GetEntryById operation type |
137 | */ | 138 | */ |
138 | static const struct afs_call_type afs_RXVLGetEntryById = { | 139 | static const struct afs_call_type afs_RXVLGetEntryById = { |
140 | .name = "VL.GetEntryById", | ||
139 | .deliver = afs_deliver_vl_get_entry_by_xxx, | 141 | .deliver = afs_deliver_vl_get_entry_by_xxx, |
140 | .abort_to_error = afs_vl_abort_to_error, | 142 | .abort_to_error = afs_vl_abort_to_error, |
141 | .destructor = afs_flat_call_destructor, | 143 | .destructor = afs_flat_call_destructor, |
@@ -145,6 +147,7 @@ static const struct afs_call_type afs_RXVLGetEntryById = { | |||
145 | * dispatch a get volume entry by name operation | 147 | * dispatch a get volume entry by name operation |
146 | */ | 148 | */ |
147 | int afs_vl_get_entry_by_name(struct in_addr *addr, | 149 | int afs_vl_get_entry_by_name(struct in_addr *addr, |
150 | struct key *key, | ||
148 | const char *volname, | 151 | const char *volname, |
149 | struct afs_cache_vlocation *entry, | 152 | struct afs_cache_vlocation *entry, |
150 | const struct afs_wait_mode *wait_mode) | 153 | const struct afs_wait_mode *wait_mode) |
@@ -163,6 +166,7 @@ int afs_vl_get_entry_by_name(struct in_addr *addr, | |||
163 | if (!call) | 166 | if (!call) |
164 | return -ENOMEM; | 167 | return -ENOMEM; |
165 | 168 | ||
169 | call->key = key; | ||
166 | call->reply = entry; | 170 | call->reply = entry; |
167 | call->service_id = VL_SERVICE; | 171 | call->service_id = VL_SERVICE; |
168 | call->port = htons(AFS_VL_PORT); | 172 | call->port = htons(AFS_VL_PORT); |
@@ -183,6 +187,7 @@ int afs_vl_get_entry_by_name(struct in_addr *addr, | |||
183 | * dispatch a get volume entry by ID operation | 187 | * dispatch a get volume entry by ID operation |
184 | */ | 188 | */ |
185 | int afs_vl_get_entry_by_id(struct in_addr *addr, | 189 | int afs_vl_get_entry_by_id(struct in_addr *addr, |
190 | struct key *key, | ||
186 | afs_volid_t volid, | 191 | afs_volid_t volid, |
187 | afs_voltype_t voltype, | 192 | afs_voltype_t voltype, |
188 | struct afs_cache_vlocation *entry, | 193 | struct afs_cache_vlocation *entry, |
@@ -197,6 +202,7 @@ int afs_vl_get_entry_by_id(struct in_addr *addr, | |||
197 | if (!call) | 202 | if (!call) |
198 | return -ENOMEM; | 203 | return -ENOMEM; |
199 | 204 | ||
205 | call->key = key; | ||
200 | call->reply = entry; | 206 | call->reply = entry; |
201 | call->service_id = VL_SERVICE; | 207 | call->service_id = VL_SERVICE; |
202 | call->port = htons(AFS_VL_PORT); | 208 | call->port = htons(AFS_VL_PORT); |