diff options
-rw-r--r-- | fs/Kconfig | 14 | ||||
-rw-r--r-- | fs/coda/coda_linux.c | 6 | ||||
-rw-r--r-- | fs/coda/psdev.c | 4 | ||||
-rw-r--r-- | fs/coda/upcall.c | 15 | ||||
-rw-r--r-- | include/linux/coda.h | 43 |
5 files changed, 3 insertions, 79 deletions
diff --git a/fs/Kconfig b/fs/Kconfig index 37db79a2ff95..ed563b9e352a 100644 --- a/fs/Kconfig +++ b/fs/Kconfig | |||
@@ -2093,20 +2093,6 @@ config CODA_FS | |||
2093 | To compile the coda client support as a module, choose M here: the | 2093 | To compile the coda client support as a module, choose M here: the |
2094 | module will be called coda. | 2094 | module will be called coda. |
2095 | 2095 | ||
2096 | config CODA_FS_OLD_API | ||
2097 | bool "Use 96-bit Coda file identifiers" | ||
2098 | depends on CODA_FS | ||
2099 | help | ||
2100 | A new kernel-userspace API had to be introduced for Coda v6.0 | ||
2101 | to support larger 128-bit file identifiers as needed by the | ||
2102 | new realms implementation. | ||
2103 | |||
2104 | However this new API is not backward compatible with older | ||
2105 | clients. If you really need to run the old Coda userspace | ||
2106 | cache manager then say Y. | ||
2107 | |||
2108 | For most cases you probably want to say N. | ||
2109 | |||
2110 | config AFS_FS | 2096 | config AFS_FS |
2111 | tristate "Andrew File System support (AFS) (EXPERIMENTAL)" | 2097 | tristate "Andrew File System support (AFS) (EXPERIMENTAL)" |
2112 | depends on INET && EXPERIMENTAL | 2098 | depends on INET && EXPERIMENTAL |
diff --git a/fs/coda/coda_linux.c b/fs/coda/coda_linux.c index e1c854890f94..bf4a3fd3c8e3 100644 --- a/fs/coda/coda_linux.c +++ b/fs/coda/coda_linux.c | |||
@@ -28,11 +28,9 @@ int coda_fake_statfs; | |||
28 | char * coda_f2s(struct CodaFid *f) | 28 | char * coda_f2s(struct CodaFid *f) |
29 | { | 29 | { |
30 | static char s[60]; | 30 | static char s[60]; |
31 | #ifdef CONFIG_CODA_FS_OLD_API | 31 | |
32 | sprintf(s, "(%08x.%08x.%08x)", f->opaque[0], f->opaque[1], f->opaque[2]); | ||
33 | #else | ||
34 | sprintf(s, "(%08x.%08x.%08x.%08x)", f->opaque[0], f->opaque[1], f->opaque[2], f->opaque[3]); | 32 | sprintf(s, "(%08x.%08x.%08x.%08x)", f->opaque[0], f->opaque[1], f->opaque[2], f->opaque[3]); |
35 | #endif | 33 | |
36 | return s; | 34 | return s; |
37 | } | 35 | } |
38 | 36 | ||
diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c index 40c36f7352a6..0d9b80ec689c 100644 --- a/fs/coda/psdev.c +++ b/fs/coda/psdev.c | |||
@@ -378,11 +378,7 @@ MODULE_AUTHOR("Jan Harkes, Peter J. Braam"); | |||
378 | MODULE_DESCRIPTION("Coda Distributed File System VFS interface"); | 378 | MODULE_DESCRIPTION("Coda Distributed File System VFS interface"); |
379 | MODULE_ALIAS_CHARDEV_MAJOR(CODA_PSDEV_MAJOR); | 379 | MODULE_ALIAS_CHARDEV_MAJOR(CODA_PSDEV_MAJOR); |
380 | MODULE_LICENSE("GPL"); | 380 | MODULE_LICENSE("GPL"); |
381 | #ifdef CONFIG_CODA_FS_OLD_API | ||
382 | MODULE_VERSION("5.3.21"); | ||
383 | #else | ||
384 | MODULE_VERSION("6.6"); | 381 | MODULE_VERSION("6.6"); |
385 | #endif | ||
386 | 382 | ||
387 | static int __init init_coda(void) | 383 | static int __init init_coda(void) |
388 | { | 384 | { |
diff --git a/fs/coda/upcall.c b/fs/coda/upcall.c index 359e531094dd..ce432bca95d1 100644 --- a/fs/coda/upcall.c +++ b/fs/coda/upcall.c | |||
@@ -52,12 +52,8 @@ static void *alloc_upcall(int opcode, int size) | |||
52 | inp->ih.opcode = opcode; | 52 | inp->ih.opcode = opcode; |
53 | inp->ih.pid = current->pid; | 53 | inp->ih.pid = current->pid; |
54 | inp->ih.pgid = task_pgrp_nr(current); | 54 | inp->ih.pgid = task_pgrp_nr(current); |
55 | #ifdef CONFIG_CODA_FS_OLD_API | ||
56 | memset(&inp->ih.cred, 0, sizeof(struct coda_cred)); | ||
57 | inp->ih.cred.cr_fsuid = current->fsuid; | ||
58 | #else | ||
59 | inp->ih.uid = current->fsuid; | 55 | inp->ih.uid = current->fsuid; |
60 | #endif | 56 | |
61 | return (void*)inp; | 57 | return (void*)inp; |
62 | } | 58 | } |
63 | 59 | ||
@@ -166,20 +162,11 @@ int venus_close(struct super_block *sb, struct CodaFid *fid, int flags, | |||
166 | union inputArgs *inp; | 162 | union inputArgs *inp; |
167 | union outputArgs *outp; | 163 | union outputArgs *outp; |
168 | int insize, outsize, error; | 164 | int insize, outsize, error; |
169 | #ifdef CONFIG_CODA_FS_OLD_API | ||
170 | struct coda_cred cred = { 0, }; | ||
171 | cred.cr_fsuid = uid; | ||
172 | #endif | ||
173 | 165 | ||
174 | insize = SIZE(release); | 166 | insize = SIZE(release); |
175 | UPARG(CODA_CLOSE); | 167 | UPARG(CODA_CLOSE); |
176 | 168 | ||
177 | #ifdef CONFIG_CODA_FS_OLD_API | ||
178 | memcpy(&(inp->ih.cred), &cred, sizeof(cred)); | ||
179 | #else | ||
180 | inp->ih.uid = uid; | 169 | inp->ih.uid = uid; |
181 | #endif | ||
182 | |||
183 | inp->coda_close.VFid = *fid; | 170 | inp->coda_close.VFid = *fid; |
184 | inp->coda_close.flags = flags; | 171 | inp->coda_close.flags = flags; |
185 | 172 | ||
diff --git a/include/linux/coda.h b/include/linux/coda.h index b5cf0780c51a..96c87693800b 100644 --- a/include/linux/coda.h +++ b/include/linux/coda.h | |||
@@ -199,28 +199,6 @@ typedef u_int32_t vuid_t; | |||
199 | typedef u_int32_t vgid_t; | 199 | typedef u_int32_t vgid_t; |
200 | #endif /*_VUID_T_ */ | 200 | #endif /*_VUID_T_ */ |
201 | 201 | ||
202 | #ifdef CONFIG_CODA_FS_OLD_API | ||
203 | struct CodaFid { | ||
204 | u_int32_t opaque[3]; | ||
205 | }; | ||
206 | |||
207 | static __inline__ ino_t coda_f2i(struct CodaFid *fid) | ||
208 | { | ||
209 | if ( ! fid ) | ||
210 | return 0; | ||
211 | if (fid->opaque[1] == 0xfffffffe || fid->opaque[1] == 0xffffffff) | ||
212 | return ((fid->opaque[0] << 20) | (fid->opaque[2] & 0xfffff)); | ||
213 | else | ||
214 | return (fid->opaque[2] + (fid->opaque[1]<<10) + (fid->opaque[0]<<20)); | ||
215 | } | ||
216 | |||
217 | struct coda_cred { | ||
218 | vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid; /* Real, efftve, set, fs uid*/ | ||
219 | vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid; /* same for groups */ | ||
220 | }; | ||
221 | |||
222 | #else /* not defined(CONFIG_CODA_FS_OLD_API) */ | ||
223 | |||
224 | struct CodaFid { | 202 | struct CodaFid { |
225 | u_int32_t opaque[4]; | 203 | u_int32_t opaque[4]; |
226 | }; | 204 | }; |
@@ -228,8 +206,6 @@ struct CodaFid { | |||
228 | #define coda_f2i(fid)\ | 206 | #define coda_f2i(fid)\ |
229 | (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0) | 207 | (fid ? (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]) : 0) |
230 | 208 | ||
231 | #endif | ||
232 | |||
233 | #ifndef _VENUS_VATTR_T_ | 209 | #ifndef _VENUS_VATTR_T_ |
234 | #define _VENUS_VATTR_T_ | 210 | #define _VENUS_VATTR_T_ |
235 | /* | 211 | /* |
@@ -313,15 +289,7 @@ struct coda_statfs { | |||
313 | 289 | ||
314 | #define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t) | 290 | #define CIOC_KERNEL_VERSION _IOWR('c', 10, size_t) |
315 | 291 | ||
316 | #if 0 | ||
317 | #define CODA_KERNEL_VERSION 0 /* don't care about kernel version number */ | ||
318 | #define CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */ | ||
319 | #endif | ||
320 | #ifdef CONFIG_CODA_FS_OLD_API | ||
321 | #define CODA_KERNEL_VERSION 2 /* venus_lookup got an extra parameter */ | ||
322 | #else | ||
323 | #define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ | 292 | #define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ |
324 | #endif | ||
325 | 293 | ||
326 | /* | 294 | /* |
327 | * Venus <-> Coda RPC arguments | 295 | * Venus <-> Coda RPC arguments |
@@ -329,16 +297,9 @@ struct coda_statfs { | |||
329 | struct coda_in_hdr { | 297 | struct coda_in_hdr { |
330 | u_int32_t opcode; | 298 | u_int32_t opcode; |
331 | u_int32_t unique; /* Keep multiple outstanding msgs distinct */ | 299 | u_int32_t unique; /* Keep multiple outstanding msgs distinct */ |
332 | #ifdef CONFIG_CODA_FS_OLD_API | ||
333 | u_int16_t pid; /* Common to all */ | ||
334 | u_int16_t pgid; /* Common to all */ | ||
335 | u_int16_t sid; /* Common to all */ | ||
336 | struct coda_cred cred; /* Common to all */ | ||
337 | #else | ||
338 | pid_t pid; | 300 | pid_t pid; |
339 | pid_t pgid; | 301 | pid_t pgid; |
340 | vuid_t uid; | 302 | vuid_t uid; |
341 | #endif | ||
342 | }; | 303 | }; |
343 | 304 | ||
344 | /* Really important that opcode and unique are 1st two fields! */ | 305 | /* Really important that opcode and unique are 1st two fields! */ |
@@ -613,11 +574,7 @@ struct coda_vget_out { | |||
613 | /* CODA_PURGEUSER is a venus->kernel call */ | 574 | /* CODA_PURGEUSER is a venus->kernel call */ |
614 | struct coda_purgeuser_out { | 575 | struct coda_purgeuser_out { |
615 | struct coda_out_hdr oh; | 576 | struct coda_out_hdr oh; |
616 | #ifdef CONFIG_CODA_FS_OLD_API | ||
617 | struct coda_cred cred; | ||
618 | #else | ||
619 | vuid_t uid; | 577 | vuid_t uid; |
620 | #endif | ||
621 | }; | 578 | }; |
622 | 579 | ||
623 | /* coda_zapfile: */ | 580 | /* coda_zapfile: */ |