lkml.org 
[lkml]   [2004]   [Mar]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectPatch to fix the old api for codafs

Hi,

The old api of the codafilesystem (96 bits) is still in use, at least
for davfs. But, as of 2.6.4, a typo presents it to work correctly.

The attached patch fixes this, and is still valid for 2.6.5-pre1-bk2.

Please apply,

Regards,

DindinX

P.S: this patch was given to me be Pollux (CC to this mail)

--
David@dindinx.org
diff -Nru linux-2.6.4.orig/fs/coda/coda_linux.c linux-2.6.4.patched/fs/coda/coda_linux.c
--- linux-2.6.4.orig/fs/coda/coda_linux.c 2004-03-17 17:37:37.000000000 +0100
+++ linux-2.6.4.patched/fs/coda/coda_linux.c 2004-03-17 17:42:32.000000000 +0100
@@ -28,7 +28,7 @@
char * coda_f2s(struct CodaFid *f)
{
static char s[60];
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
sprintf(s, "(%08x.%08x.%08x)", f->opaque[0], f->opaque[1], f->opaque[2]);
#else
sprintf(s, "(%08x.%08x.%08x.%08x)", f->opaque[0], f->opaque[1], f->opaque[2], f->opaque[3]);
diff -Nru linux-2.6.4.orig/fs/coda/psdev.c linux-2.6.4.patched/fs/coda/psdev.c
--- linux-2.6.4.orig/fs/coda/psdev.c 2004-03-17 17:37:37.000000000 +0100
+++ linux-2.6.4.patched/fs/coda/psdev.c 2004-03-17 17:42:52.000000000 +0100
@@ -385,7 +385,7 @@
int status;
int i;
printk(KERN_INFO "Coda Kernel/Venus communications, "
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
"v5.3.20"
#else
"v6.0.0"
diff -Nru linux-2.6.4.orig/fs/coda/upcall.c linux-2.6.4.patched/fs/coda/upcall.c
--- linux-2.6.4.orig/fs/coda/upcall.c 2004-03-17 17:37:37.000000000 +0100
+++ linux-2.6.4.patched/fs/coda/upcall.c 2004-03-17 17:43:40.000000000 +0100
@@ -55,7 +55,7 @@
inp->ih.opcode = opcode;
inp->ih.pid = current->pid;
inp->ih.pgid = process_group(current);
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
memset(&inp->ih.cred, 0, sizeof(struct coda_cred));
inp->ih.cred.cr_fsuid = current->fsuid;
#else
@@ -172,7 +172,7 @@
union inputArgs *inp;
union outputArgs *outp;
int insize, outsize, error;
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
struct coda_cred cred = { 0, };
cred.cr_fsuid = uid;
#endif
@@ -180,7 +180,7 @@
insize = SIZE(store);
UPARG(CODA_STORE);

-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
memcpy(&(inp->ih.cred), &cred, sizeof(cred));
#else
inp->ih.uid = uid;
@@ -219,7 +219,7 @@
union inputArgs *inp;
union outputArgs *outp;
int insize, outsize, error;
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
struct coda_cred cred = { 0, };
cred.cr_fsuid = uid;
#endif
@@ -227,7 +227,7 @@
insize = SIZE(release);
UPARG(CODA_CLOSE);

-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
memcpy(&(inp->ih.cred), &cred, sizeof(cred));
#else
inp->ih.uid = uid;
diff -Nru linux-2.6.4.orig/include/linux/coda.h linux-2.6.4.patched/include/linux/coda.h
--- linux-2.6.4.orig/include/linux/coda.h 2004-03-17 17:38:32.000000000 +0100
+++ linux-2.6.4.patched/include/linux/coda.h 2004-03-17 17:44:55.000000000 +0100
@@ -200,7 +200,7 @@
typedef u_int32_t vgid_t;
#endif /*_VUID_T_ */

-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
struct CodaFid {
u_int32_t opaque[3];
};
@@ -220,7 +220,7 @@
vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid; /* same for groups */
};

-#else /* not defined(CODA_FS_OLD_API) */
+#else /* not defined(CONFIG_CODA_FS_OLD_API) */

struct CodaFid {
u_int32_t opaque[4];
@@ -318,7 +318,7 @@
#define CODA_KERNEL_VERSION 0 /* don't care about kernel version number */
#define CODA_KERNEL_VERSION 1 /* The old venus 4.6 compatible interface */
#endif
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
#define CODA_KERNEL_VERSION 2 /* venus_lookup got an extra parameter */
#else
#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */
@@ -330,7 +330,7 @@
struct coda_in_hdr {
u_int32_t opcode;
u_int32_t unique; /* Keep multiple outstanding msgs distinct */
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
u_int16_t pid; /* Common to all */
u_int16_t pgid; /* Common to all */
u_int16_t sid; /* Common to all */
@@ -614,7 +614,7 @@
/* CODA_PURGEUSER is a venus->kernel call */
struct coda_purgeuser_out {
struct coda_out_hdr oh;
-#ifdef CODA_FS_OLD_API
+#ifdef CONFIG_CODA_FS_OLD_API
struct coda_cred cred;
#else
vuid_t uid;
\
 
 \ /
  Last update: 2005-03-22 14:01    [from the cache]
©2003-2011 Jasper Spaans