diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/cache.c linux-2.4.20-coda/fs/coda/cache.c --- linux-2.4.20/fs/coda/cache.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/cache.c 2003-01-08 12:40:22.000000000 -0500 @@ -29,8 +29,8 @@ { struct coda_inode_info *cii = ITOC(inode); - if ( !coda_cred_ok(&cii->c_cached_cred) ) { - coda_load_creds(&cii->c_cached_cred); + if ( cii->c_cached_uid != current->fsuid ) { + cii->c_cached_uid = current->fsuid; cii->c_cached_perm = mask; } else cii->c_cached_perm |= mask; @@ -43,8 +43,8 @@ cii->c_cached_perm = 0; } -/* remove all acl caches for a principal (or all principals when cred == NULL)*/ -void coda_cache_clear_all(struct super_block *sb, struct coda_cred *cred) +/* remove all acl caches for a principal (or all principals when uid == NULL)*/ +void coda_cache_clear_all(struct super_block *sb, uid_t *uid) { struct coda_sb_info *sbi; struct coda_inode_info *cii; @@ -56,7 +56,7 @@ list_for_each(tmp, &sbi->sbi_cihead) { cii = list_entry(tmp, struct coda_inode_info, c_cilist); - if (!cred || coda_cred_eq(cred, &cii->c_cached_cred)) + if (!uid || cii->c_cached_uid == *uid) cii->c_cached_perm = 0; } } @@ -68,8 +68,8 @@ struct coda_inode_info *cii = ITOC(inode); int hit; - hit = ((mask & cii->c_cached_perm) == mask) && - coda_cred_ok(&cii->c_cached_cred); + hit = ((mask & cii->c_cached_perm) == mask && + cii->c_cached_uid == current->fsuid); CDEBUG(D_CACHE, "%s for ino %ld\n", hit ? "HIT" : "MISS", inode->i_ino); return hit; diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/cnode.c linux-2.4.20-coda/fs/coda/cnode.c --- linux-2.4.20/fs/coda/cnode.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/cnode.c 2003-01-08 12:40:22.000000000 -0500 @@ -13,23 +13,20 @@ extern int coda_debug; -inline int coda_fideq(ViceFid *fid1, ViceFid *fid2) +inline int coda_fideq(struct CodaFid *fid1, struct CodaFid *fid2) { - if (fid1->Vnode != fid2->Vnode) return 0; - if (fid1->Volume != fid2->Volume) return 0; - if (fid1->Unique != fid2->Unique) return 0; - return 1; + return memcmp(fid1, fid2, sizeof(struct CodaFid)) == 0; } -inline int coda_isnullfid(ViceFid *fid) +static struct CodaFid NullFid; +inline int coda_isnullfid(struct CodaFid *fid) { - if (fid->Vnode || fid->Volume || fid->Unique) return 0; - return 1; + return coda_fideq(fid, &NullFid); } static int coda_inocmp(struct inode *inode, unsigned long ino, void *opaque) { - return (coda_fideq((ViceFid *)opaque, &(ITOC(inode)->c_fid))); + return (coda_fideq((struct CodaFid *)opaque, &(ITOC(inode)->c_fid))); } static struct inode_operations coda_symlink_inode_operations = { @@ -62,7 +59,7 @@ init_special_inode(inode, inode->i_mode, attr->va_rdev); } -struct inode * coda_iget(struct super_block * sb, ViceFid * fid, +struct inode * coda_iget(struct super_block * sb, struct CodaFid * fid, struct coda_vattr * attr) { struct inode *inode; @@ -97,7 +94,7 @@ - link the two up if this is needed - fill in the attributes */ -int coda_cnode_make(struct inode **inode, ViceFid *fid, struct super_block *sb) +int coda_cnode_make(struct inode **inode, struct CodaFid *fid, struct super_block *sb) { struct coda_vattr attr; int error; @@ -125,8 +122,8 @@ } -void coda_replace_fid(struct inode *inode, struct ViceFid *oldfid, - struct ViceFid *newfid) +void coda_replace_fid(struct inode *inode, struct CodaFid *oldfid, + struct CodaFid *newfid) { struct coda_inode_info *cii; @@ -144,7 +141,7 @@ } /* convert a fid to an inode. */ -struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb) +struct inode *coda_fid_to_inode(struct CodaFid *fid, struct super_block *sb) { ino_t nr; struct inode *inode; diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/coda_linux.c linux-2.4.20-coda/fs/coda/coda_linux.c --- linux-2.4.20/fs/coda/coda_linux.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/coda_linux.c 2003-01-08 13:41:37.000000000 -0500 @@ -29,10 +29,10 @@ int coda_fake_statfs; /* print a fid */ -char * coda_f2s(ViceFid *f) +char * coda_f2s(struct CodaFid *f) { static char s[60]; - sprintf(s, "(%-#lx.%-#lx.%-#lx)", f->Volume, f->Vnode, f->Unique); + sprintf(s, "(%-#x.%-#x.%-#x)", f->opaque[1], f->opaque[2], f->opaque[3]); return s; } @@ -49,30 +49,6 @@ return ( i->i_sb->s_root->d_inode == i ); } -/* put the current process credentials in the cred */ -void coda_load_creds(struct coda_cred *cred) -{ - cred->cr_uid = (vuid_t) current->uid; - cred->cr_euid = (vuid_t) current->euid; - cred->cr_suid = (vuid_t) current->suid; - cred->cr_fsuid = (vuid_t) current->fsuid; - - cred->cr_groupid = (vgid_t) current->gid; - cred->cr_egid = (vgid_t) current->egid; - cred->cr_sgid = (vgid_t) current->sgid; - cred->cr_fsgid = (vgid_t) current->fsgid; -} - -int coda_cred_ok(struct coda_cred *cred) -{ - return(current->fsuid == cred->cr_fsuid); -} - -int coda_cred_eq(struct coda_cred *cred1, struct coda_cred *cred2) -{ - return (cred1->cr_fsuid == cred2->cr_fsuid); -} - unsigned short coda_flags_to_cflags(unsigned short flags) { unsigned short coda_flags = 0; @@ -173,8 +149,8 @@ /* clean out */ vattr->va_mode = (umode_t) -1; - vattr->va_uid = (vuid_t) -1; - vattr->va_gid = (vgid_t) -1; + vattr->va_uid = (uid_t) -1; + vattr->va_gid = (gid_t) -1; vattr->va_size = (off_t) -1; vattr->va_atime.tv_sec = (time_t) -1; vattr->va_mtime.tv_sec = (time_t) -1; @@ -212,10 +188,10 @@ vattr->va_mode = iattr->ia_mode; } if ( valid & ATTR_UID ) { - vattr->va_uid = (vuid_t) iattr->ia_uid; + vattr->va_uid = iattr->ia_uid; } if ( valid & ATTR_GID ) { - vattr->va_gid = (vgid_t) iattr->ia_gid; + vattr->va_gid = iattr->ia_gid; } if ( valid & ATTR_SIZE ) { vattr->va_size = iattr->ia_size; diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/dir.c linux-2.4.20-coda/fs/coda/dir.c --- linux-2.4.20/fs/coda/dir.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/dir.c 2003-01-08 12:40:22.000000000 -0500 @@ -94,12 +95,14 @@ static struct dentry *coda_lookup(struct inode *dir, struct dentry *entry) { struct inode *res_inode = NULL; - struct ViceFid resfid = {0,0,0}; + struct CodaFid resfid; int dropme = 0; /* to indicate entry should not be cached */ int type = 0; int error = 0; const char *name = entry->d_name.name; size_t length = entry->d_name.len; + + memset(&resfid, 0, sizeof(struct CodaFid)); if ( length > CODA_MAXNAMLEN ) { printk("name too long: lookup, %s (%*s)\n", @@ -208,7 +211,7 @@ const char *name=de->d_name.name; int length=de->d_name.len; struct inode *inode; - struct ViceFid newfid; + struct CodaFid newfid; struct coda_vattr attrs; coda_vfs_stat.create++; @@ -246,7 +249,7 @@ const char *name=de->d_name.name; int length=de->d_name.len; struct inode *inode; - struct ViceFid newfid; + struct CodaFid newfid; struct coda_vattr attrs; if ( coda_hasmknod == 0 ) @@ -289,7 +292,7 @@ const char *name = de->d_name.name; int len = de->d_name.len; int error; - struct ViceFid newfid; + struct CodaFid newfid; coda_vfs_stat.mkdir++; diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/file.c linux-2.4.20-coda/fs/coda/file.c --- linux-2.4.20/fs/coda/file.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/file.c 2003-01-09 16:58:24.000000000 -0500 @@ -139,7 +137,6 @@ cfi->cfi_magic = CODA_MAGIC; cfi->cfi_mapcount = 0; cfi->cfi_container = host_file; - coda_load_creds(&cfi->cfi_cred); host_inode = host_file->f_dentry->d_inode; if (coda_inode->i_mapping == &coda_inode->i_data) @@ -187,7 +184,7 @@ if (!cfi || cfi->cfi_magic != CODA_MAGIC) BUG(); err = venus_store(coda_inode->i_sb, coda_i2f(coda_inode), coda_flags, - &cfi->cfi_cred); + coda_file->f_uid); if (err == -EOPNOTSUPP) { use_coda_close = 1; @@ -223,7 +220,7 @@ if (use_coda_close) err = venus_close(coda_inode->i_sb, coda_i2f(coda_inode), - coda_flags, &cfi->cfi_cred); + coda_flags, coda_file->f_uid); host_inode = cfi->cfi_container->f_dentry->d_inode; cii = ITOC(coda_inode); diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/inode.c linux-2.4.20-coda/fs/coda/inode.c --- linux-2.4.20/fs/coda/inode.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/inode.c 2003-01-08 12:40:30.000000000 -0500 @@ -95,7 +95,7 @@ struct inode *root = 0; struct coda_sb_info *sbi = NULL; struct venus_comm *vc = NULL; - ViceFid fid; + struct CodaFid fid; int error; int idx; diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/psdev.c linux-2.4.20-coda/fs/coda/psdev.c --- linux-2.4.20/fs/coda/psdev.c 2002-08-28 01:07:35.000000000 -0400 +++ linux-2.4.20-coda/fs/coda/psdev.c 2003-01-08 13:40:49.000000000 -0500 @@ -114,7 +114,7 @@ if (copy_from_user(&hdr, buf, 2 * sizeof(u_long))) return -EFAULT; - CDEBUG(D_PSDEV, "(process,opc,uniq)=(%d,%ld,%ld), nbytes %ld\n", + CDEBUG(D_PSDEV, "(process,opc,uniq)=(%d,%d,%d), nbytes %ld\n", current->pid, hdr.opcode, hdr.unique, (long)nbytes); if (DOWNCALL(hdr.opcode)) { @@ -131,13 +131,13 @@ CDEBUG(D_PSDEV, "handling downcall\n"); if ( nbytes < sizeof(struct coda_out_hdr) ) { - printk("coda_downcall opc %ld uniq %ld, not enough!\n", + printk("coda_downcall opc %d uniq %d, not enough!\n", hdr.opcode, hdr.unique); count = nbytes; goto out; } if ( nbytes > size ) { - printk("Coda: downcall opc %ld, uniq %ld, too much!", + printk("Coda: downcall opc %d, uniq %d, too much!", hdr.opcode, hdr.unique); nbytes = size; } @@ -176,17 +176,17 @@ unlock_kernel(); if (!req) { - printk("psdev_write: msg (%ld, %ld) not found\n", + printk("psdev_write: msg (%d, %d) not found\n", hdr.opcode, hdr.unique); retval = -ESRCH; goto out; } - CDEBUG(D_PSDEV,"Eureka: uniq %ld on queue!\n", hdr.unique); + CDEBUG(D_PSDEV,"Eureka: uniq %d on queue!\n", hdr.unique); /* move data into response buffer. */ if (req->uc_outSize < nbytes) { - printk("psdev_write: too much cnt: %d, cnt: %ld, opc: %ld, uniq: %ld.\n", + printk("psdev_write: too much cnt: %d, cnt: %ld, opc: %d, uniq: %d.\n", req->uc_outSize, (long)nbytes, hdr.opcode, hdr.unique); nbytes = req->uc_outSize; /* don't have more space! */ } @@ -210,7 +210,7 @@ } CDEBUG(D_PSDEV, - "Found! Count %ld for (opc,uniq)=(%ld,%ld), upc_req at %p\n", + "Found! Count %ld for (opc,uniq)=(%d,%d), upc_req at %p\n", (long)count, hdr.opcode, hdr.unique, &req); wake_up(&req->uc_sleep); diff -urN --exclude-from=../dontdiff linux-2.4.20/fs/coda/upcall.c linux-2.4.20-coda/fs/coda/upcall.c --- linux-2.4.20/fs/coda/upcall.c 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/fs/coda/upcall.c 2003-01-08 13:41:06.000000000 -0500 @@ -55,7 +55,7 @@ inp->ih.opcode = opcode; inp->ih.pid = current->pid; inp->ih.pgid = current->pgrp; - coda_load_creds(&(inp->ih.cred)); + inp->ih.uid = current->uid; return (void*)inp; } @@ -74,7 +74,7 @@ /* the upcalls */ -int venus_rootfid(struct super_block *sb, ViceFid *fidp) +int venus_rootfid(struct super_block *sb, struct CodaFid *fidp) { union inputArgs *inp; union outputArgs *outp; @@ -88,16 +88,14 @@ if (error) { printk("coda_get_rootfid: error %d\n", error); } else { - *fidp = (ViceFid) outp->coda_root.VFid; - CDEBUG(D_SUPER, "VolumeId: %lx, VnodeId: %lx.\n", - fidp->Volume, fidp->Vnode); + *fidp = (struct CodaFid) outp->coda_root.Fid; } CODA_FREE(inp, insize); return error; } -int venus_getattr(struct super_block *sb, struct ViceFid *fid, +int venus_getattr(struct super_block *sb, struct CodaFid *fid, struct coda_vattr *attr) { union inputArgs *inp; @@ -106,7 +104,7 @@ insize = SIZE(getattr); UPARG(CODA_GETATTR); - inp->coda_getattr.VFid = *fid; + inp->coda_getattr.Fid = *fid; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -116,7 +114,7 @@ return error; } -int venus_setattr(struct super_block *sb, struct ViceFid *fid, +int venus_setattr(struct super_block *sb, struct CodaFid *fid, struct coda_vattr *vattr) { union inputArgs *inp; @@ -126,7 +124,7 @@ insize = SIZE(setattr); UPARG(CODA_SETATTR); - inp->coda_setattr.VFid = *fid; + inp->coda_setattr.Fid = *fid; inp->coda_setattr.attr = *vattr; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -136,9 +134,9 @@ return error; } -int venus_lookup(struct super_block *sb, struct ViceFid *fid, +int venus_lookup(struct super_block *sb, struct CodaFid *fid, const char *name, int length, int * type, - struct ViceFid *resfid) + struct CodaFid *resfid) { union inputArgs *inp; union outputArgs *outp; @@ -149,7 +147,7 @@ insize = max_t(unsigned int, offset + length +1, OUTSIZE(lookup)); UPARG(CODA_LOOKUP); - inp->coda_lookup.VFid = *fid; + inp->coda_lookup.Fid = *fid; inp->coda_lookup.name = offset; inp->coda_lookup.flags = CLU_CASE_SENSITIVE; /* send Venus a null terminated string */ @@ -158,15 +156,14 @@ error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); - *resfid = outp->coda_lookup.VFid; + *resfid = outp->coda_lookup.Fid; *type = outp->coda_lookup.vtype; CODA_FREE(inp, insize); return error; } -int venus_store(struct super_block *sb, struct ViceFid *fid, int flags, - struct coda_cred *cred) +int venus_store(struct super_block *sb, struct CodaFid *fid, int flags, uid_t uid) { union inputArgs *inp; union outputArgs *outp; @@ -175,9 +172,8 @@ insize = SIZE(store); UPARG(CODA_STORE); - memcpy(&(inp->ih.cred), cred, sizeof(*cred)); - - inp->coda_store.VFid = *fid; + inp->ih.uid = uid; + inp->coda_store.Fid = *fid; inp->coda_store.flags = flags; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -186,7 +182,7 @@ return error; } -int venus_release(struct super_block *sb, struct ViceFid *fid, int flags) +int venus_release(struct super_block *sb, struct CodaFid *fid, int flags) { union inputArgs *inp; union outputArgs *outp; @@ -195,7 +191,7 @@ insize = SIZE(release); UPARG(CODA_RELEASE); - inp->coda_release.VFid = *fid; + inp->coda_release.Fid = *fid; inp->coda_release.flags = flags; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -204,8 +200,7 @@ return error; } -int venus_close(struct super_block *sb, struct ViceFid *fid, int flags, - struct coda_cred *cred) +int venus_close(struct super_block *sb, struct CodaFid *fid, int flags, uid_t uid) { union inputArgs *inp; union outputArgs *outp; @@ -214,9 +209,8 @@ insize = SIZE(release); UPARG(CODA_CLOSE); - memcpy(&(inp->ih.cred), cred, sizeof(*cred)); - - inp->coda_close.VFid = *fid; + inp->ih.uid = uid; + inp->coda_close.Fid = *fid; inp->coda_close.flags = flags; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -225,7 +219,7 @@ return error; } -int venus_open(struct super_block *sb, struct ViceFid *fid, +int venus_open(struct super_block *sb, struct CodaFid *fid, int flags, struct file **fh) { union inputArgs *inp; @@ -235,7 +229,7 @@ insize = SIZE(open_by_fd); UPARG(CODA_OPEN_BY_FD); - inp->coda_open.VFid = *fid; + inp->coda_open.Fid = *fid; inp->coda_open.flags = flags; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -246,9 +240,9 @@ return error; } -int venus_mkdir(struct super_block *sb, struct ViceFid *dirfid, +int venus_mkdir(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length, - struct ViceFid *newfid, struct coda_vattr *attrs) + struct CodaFid *newfid, struct coda_vattr *attrs) { union inputArgs *inp; union outputArgs *outp; @@ -259,7 +253,7 @@ insize = max_t(unsigned int, offset + length + 1, OUTSIZE(mkdir)); UPARG(CODA_MKDIR); - inp->coda_mkdir.VFid = *dirfid; + inp->coda_mkdir.Fid = *dirfid; inp->coda_mkdir.attr = *attrs; inp->coda_mkdir.name = offset; /* Venus must get null terminated string */ @@ -269,15 +263,15 @@ error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); *attrs = outp->coda_mkdir.attr; - *newfid = outp->coda_mkdir.VFid; + *newfid = outp->coda_mkdir.Fid; CODA_FREE(inp, insize); return error; } -int venus_rename(struct super_block *sb, struct ViceFid *old_fid, - struct ViceFid *new_fid, size_t old_length, +int venus_rename(struct super_block *sb, struct CodaFid *old_fid, + struct CodaFid *new_fid, size_t old_length, size_t new_length, const char *old_name, const char *new_name) { @@ -315,9 +309,9 @@ return error; } -int venus_create(struct super_block *sb, struct ViceFid *dirfid, +int venus_create(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length, int excl, int mode, int rdev, - struct ViceFid *newfid, struct coda_vattr *attrs) + struct CodaFid *newfid, struct coda_vattr *attrs) { union inputArgs *inp; union outputArgs *outp; @@ -328,7 +322,7 @@ insize = max_t(unsigned int, offset + length + 1, OUTSIZE(create)); UPARG(CODA_CREATE); - inp->coda_create.VFid = *dirfid; + inp->coda_create.Fid = *dirfid; inp->coda_create.attr.va_mode = mode; inp->coda_create.attr.va_rdev = rdev; inp->coda_create.excl = excl; @@ -342,13 +336,13 @@ error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); *attrs = outp->coda_create.attr; - *newfid = outp->coda_create.VFid; + *newfid = outp->coda_create.Fid; CODA_FREE(inp, insize); return error; } -int venus_rmdir(struct super_block *sb, struct ViceFid *dirfid, +int venus_rmdir(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length) { union inputArgs *inp; @@ -360,7 +354,7 @@ insize = max_t(unsigned int, offset + length + 1, OUTSIZE(rmdir)); UPARG(CODA_RMDIR); - inp->coda_rmdir.VFid = *dirfid; + inp->coda_rmdir.Fid = *dirfid; inp->coda_rmdir.name = offset; memcpy((char *)(inp) + offset, name, length); *((char *)inp + offset + length) = '\0'; @@ -371,7 +365,7 @@ return error; } -int venus_remove(struct super_block *sb, struct ViceFid *dirfid, +int venus_remove(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length) { union inputArgs *inp; @@ -382,7 +376,7 @@ insize = max_t(unsigned int, offset + length + 1, OUTSIZE(remove)); UPARG(CODA_REMOVE); - inp->coda_remove.VFid = *dirfid; + inp->coda_remove.Fid = *dirfid; inp->coda_remove.name = offset; memcpy((char *)(inp) + offset, name, length); *((char *)inp + offset + length) = '\0'; @@ -393,7 +387,7 @@ return error; } -int venus_readlink(struct super_block *sb, struct ViceFid *fid, +int venus_readlink(struct super_block *sb, struct CodaFid *fid, char *buffer, int *length) { union inputArgs *inp; @@ -406,7 +400,7 @@ INSIZE(readlink), OUTSIZE(readlink)+ *length + 1); UPARG(CODA_READLINK); - inp->coda_readlink.VFid = *fid; + inp->coda_readlink.Fid = *fid; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -427,8 +421,8 @@ -int venus_link(struct super_block *sb, struct ViceFid *fid, - struct ViceFid *dirfid, const char *name, int len ) +int venus_link(struct super_block *sb, struct CodaFid *fid, + struct CodaFid *dirfid, const char *name, int len ) { union inputArgs *inp; union outputArgs *outp; @@ -454,7 +448,7 @@ return error; } -int venus_symlink(struct super_block *sb, struct ViceFid *fid, +int venus_symlink(struct super_block *sb, struct CodaFid *fid, const char *name, int len, const char *symname, int symlen) { @@ -468,7 +462,7 @@ UPARG(CODA_SYMLINK); /* inp->coda_symlink.attr = *tva; XXXXXX */ - inp->coda_symlink.VFid = *fid; + inp->coda_symlink.Fid = *fid; /* Round up to word boundary and null terminate */ inp->coda_symlink.srcname = offset; @@ -490,7 +484,7 @@ return error; } -int venus_fsync(struct super_block *sb, struct ViceFid *fid) +int venus_fsync(struct super_block *sb, struct CodaFid *fid) { union inputArgs *inp; union outputArgs *outp; @@ -499,7 +493,7 @@ insize=SIZE(fsync); UPARG(CODA_FSYNC); - inp->coda_fsync.VFid = *fid; + inp->coda_fsync.Fid = *fid; error = coda_upcall(coda_sbp(sb), sizeof(union inputArgs), &outsize, inp); @@ -507,7 +501,7 @@ return error; } -int venus_access(struct super_block *sb, struct ViceFid *fid, int mask) +int venus_access(struct super_block *sb, struct CodaFid *fid, int mask) { union inputArgs *inp; union outputArgs *outp; @@ -516,7 +510,7 @@ insize = SIZE(access); UPARG(CODA_ACCESS); - inp->coda_access.VFid = *fid; + inp->coda_access.Fid = *fid; inp->coda_access.flags = mask; error = coda_upcall(coda_sbp(sb), insize, &outsize, inp); @@ -526,7 +520,7 @@ } -int venus_pioctl(struct super_block *sb, struct ViceFid *fid, +int venus_pioctl(struct super_block *sb, struct CodaFid *fid, unsigned int cmd, struct PioctlData *data) { union inputArgs *inp; @@ -543,7 +537,7 @@ goto exit; } - inp->coda_ioctl.VFid = *fid; + inp->coda_ioctl.Fid = *fid; /* the cmd field was mutated by increasing its size field to * reflect the path and follow args. We need to subtract that @@ -763,7 +757,7 @@ /* here we map positive Venus errors to kernel errors */ error = -out->oh.result; CDEBUG(D_UPCALL, - "upcall: (u,o,r) (%ld, %ld, %ld) out at %p\n", + "upcall: (u,o,r) (%d, %d, %d) out at %p\n", out->oh.unique, out->oh.opcode, out->oh.result, out); *outSize = req->uc_outSize; goto exit; @@ -865,7 +859,7 @@ * The last allows Venus to replace local fids with global ones * during reintegration. * - * CODA_REPLACE -- replace one ViceFid with another throughout the name cache */ + * CODA_REPLACE -- replace one CodaFid with another throughout the name cache */ int coda_downcall(int opcode, union outputArgs * out, struct super_block *sb) { @@ -887,20 +881,20 @@ } case CODA_PURGEUSER : { - struct coda_cred *cred = &out->coda_purgeuser.cred; + uid_t *uid = &out->coda_purgeuser.uid; CDEBUG(D_DOWNCALL, "CODA_PURGEUSER\n"); - if ( !cred ) { - printk("PURGEUSER: null cred!\n"); + if ( !uid ) { + printk("PURGEUSER: no user!\n"); return 0; } clstats(CODA_PURGEUSER); - coda_cache_clear_all(sb, cred); + coda_cache_clear_all(sb, uid); return(0); } case CODA_ZAPDIR : { struct inode *inode; - ViceFid *fid = &out->coda_zapdir.CodaFid; + struct CodaFid *fid = &out->coda_zapdir.Fid; CDEBUG(D_DOWNCALL, "zapdir: fid = %s...\n", coda_f2s(fid)); clstats(CODA_ZAPDIR); @@ -920,7 +914,7 @@ case CODA_ZAPFILE : { struct inode *inode; - struct ViceFid *fid = &out->coda_zapfile.CodaFid; + struct CodaFid *fid = &out->coda_zapfile.Fid; clstats(CODA_ZAPFILE); CDEBUG(D_DOWNCALL, "zapfile: fid = %s\n", coda_f2s(fid)); inode = coda_fid_to_inode(fid, sb); @@ -936,7 +930,7 @@ case CODA_PURGEFID : { struct inode *inode; - ViceFid *fid = &out->coda_purgefid.CodaFid; + struct CodaFid *fid = &out->coda_purgefid.Fid; CDEBUG(D_DOWNCALL, "purgefid: fid = %s\n", coda_f2s(fid)); clstats(CODA_PURGEFID); inode = coda_fid_to_inode(fid, sb); @@ -957,8 +951,8 @@ case CODA_REPLACE : { struct inode *inode; - ViceFid *oldfid = &out->coda_replace.OldFid; - ViceFid *newfid = &out->coda_replace.NewFid; + struct CodaFid *oldfid = &out->coda_replace.OldFid; + struct CodaFid *newfid = &out->coda_replace.NewFid; clstats(CODA_REPLACE); CDEBUG(D_DOWNCALL, "CODA_REPLACE\n"); inode = coda_fid_to_inode(oldfid, sb); diff -urN --exclude-from=../dontdiff linux-2.4.20/include/linux/coda.h linux-2.4.20-coda/include/linux/coda.h --- linux-2.4.20/include/linux/coda.h 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/include/linux/coda.h 2003-01-08 12:55:23.000000000 -0500 @@ -112,13 +112,6 @@ #define cdev_t dev_t #endif -#ifdef __CYGWIN32__ -struct timespec { - time_t tv_sec; /* seconds */ - long tv_nsec; /* nanoseconds */ -}; -#endif - #ifndef __BIT_TYPES_DEFINED__ #define __BIT_TYPES_DEFINED__ typedef signed char int8_t; @@ -193,54 +186,16 @@ #endif -#ifndef _FID_T_ -#define _FID_T_ 1 -typedef u_long VolumeId; -typedef u_long VnodeId; -typedef u_long Unique_t; -typedef u_long FileVersion; -#endif +struct CodaFid { + u_int32_t opaque[4]; +}; -#ifndef _VICEFID_T_ -#define _VICEFID_T_ 1 -typedef struct ViceFid { - VolumeId Volume; - VnodeId Vnode; - Unique_t Unique; -} ViceFid; -#endif /* VICEFID */ - - -#ifdef __linux__ -static __inline__ ino_t coda_f2i(struct ViceFid *fid) +static __inline__ ino_t coda_f2i(struct CodaFid *fid) { - if ( ! fid ) - return 0; - if (fid->Vnode == 0xfffffffe || fid->Vnode == 0xffffffff) - return ((fid->Volume << 20) | (fid->Unique & 0xfffff)); - else - return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20)); + if (!fid) return 0; + return (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ + fid->opaque[0]); } - -#else -#define coda_f2i(fid)\ - ((fid) ? ((fid)->Unique + ((fid)->Vnode<<10) + ((fid)->Volume<<20)) : 0) -#endif - - -#ifndef _VUID_T_ -#define _VUID_T_ -typedef u_int32_t vuid_t; -typedef u_int32_t vgid_t; -#endif /*_VUID_T_ */ - -#ifndef _CODACRED_T_ -#define _CODACRED_T_ -struct coda_cred { - vuid_t cr_uid, cr_euid, cr_suid, cr_fsuid; /* Real, efftve, set, fs uid*/ - vgid_t cr_groupid, cr_egid, cr_sgid, cr_fsgid; /* same for groups */ -}; -#endif #ifndef _VENUS_VATTR_T_ #define _VENUS_VATTR_T_ @@ -253,8 +208,8 @@ long va_type; /* vnode type (for create) */ u_short va_mode; /* files access mode and type */ short va_nlink; /* number of references to file */ - vuid_t va_uid; /* owner user id */ - vgid_t va_gid; /* owner group id */ + uid_t va_uid; /* owner user id */ + gid_t va_gid; /* owner group id */ long va_fileid; /* file id */ u_quad_t va_size; /* file size in bytes */ long va_blocksize; /* blocksize preferred for i/o */ @@ -328,32 +283,32 @@ #if 0 #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 #define CODA_KERNEL_VERSION 2 /* venus_lookup gets an extra parameter */ +#endif +#define CODA_KERNEL_VERSION 3 /* 128-bit file identifiers */ /* * Venus <-> Coda RPC arguments */ struct coda_in_hdr { - unsigned long opcode; - unsigned long unique; /* Keep multiple outstanding msgs distinct */ - u_short pid; /* Common to all */ - u_short pgid; /* Common to all */ - u_short sid; /* Common to all */ - struct coda_cred cred; /* Common to all */ + u_int32_t opcode; + u_int32_t unique; /* Keep multiple outstanding msgs distinct */ + pid_t pid; + pid_t pgid; + uid_t uid; }; /* Really important that opcode and unique are 1st two fields! */ struct coda_out_hdr { - unsigned long opcode; - unsigned long unique; - unsigned long result; + u_int32_t opcode; + u_int32_t unique; + u_int32_t result; }; /* coda_root: NO_IN */ struct coda_root_out { struct coda_out_hdr oh; - ViceFid VFid; + struct CodaFid Fid; }; struct coda_root_in { @@ -363,7 +318,7 @@ /* coda_open: */ struct coda_open_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -377,7 +332,7 @@ /* coda_store: */ struct coda_store_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -388,7 +343,7 @@ /* coda_release: */ struct coda_release_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -399,7 +354,7 @@ /* coda_close: */ struct coda_close_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -410,7 +365,7 @@ /* coda_ioctl: */ struct coda_ioctl_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int cmd; int len; int rwflag; @@ -427,7 +382,7 @@ /* coda_getattr: */ struct coda_getattr_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; }; struct coda_getattr_out { @@ -439,7 +394,7 @@ /* coda_setattr: NO_OUT */ struct coda_setattr_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; struct coda_vattr attr; }; @@ -450,7 +405,7 @@ /* coda_access: NO_OUT */ struct coda_access_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -466,14 +421,14 @@ /* coda_lookup: */ struct coda_lookup_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int name; /* Place holder for data. */ int flags; }; struct coda_lookup_out { struct coda_out_hdr oh; - ViceFid VFid; + struct CodaFid Fid; int vtype; }; @@ -481,7 +436,7 @@ /* coda_create: */ struct coda_create_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; struct coda_vattr attr; int excl; int mode; @@ -490,7 +445,7 @@ struct coda_create_out { struct coda_out_hdr oh; - ViceFid VFid; + struct CodaFid Fid; struct coda_vattr attr; }; @@ -498,7 +453,7 @@ /* coda_remove: NO_OUT */ struct coda_remove_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int name; /* Place holder for data. */ }; @@ -509,8 +464,8 @@ /* coda_link: NO_OUT */ struct coda_link_in { struct coda_in_hdr ih; - ViceFid sourceFid; /* cnode to link *to* */ - ViceFid destFid; /* Directory in which to place link */ + struct CodaFid sourceFid; /* cnode to link *to* */ + struct CodaFid destFid; /* Directory in which to place link */ int tname; /* Place holder for data. */ }; @@ -522,9 +477,9 @@ /* coda_rename: NO_OUT */ struct coda_rename_in { struct coda_in_hdr ih; - ViceFid sourceFid; + struct CodaFid sourceFid; int srcname; - ViceFid destFid; + struct CodaFid destFid; int destname; }; @@ -535,14 +490,14 @@ /* coda_mkdir: */ struct coda_mkdir_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; struct coda_vattr attr; int name; /* Place holder for data. */ }; struct coda_mkdir_out { struct coda_out_hdr oh; - ViceFid VFid; + struct CodaFid Fid; struct coda_vattr attr; }; @@ -550,7 +505,7 @@ /* coda_rmdir: NO_OUT */ struct coda_rmdir_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int name; /* Place holder for data. */ }; @@ -561,7 +516,7 @@ /* coda_symlink: NO_OUT */ struct coda_symlink_in { struct coda_in_hdr ih; - ViceFid VFid; /* Directory to put symlink in */ + struct CodaFid Fid; /* Directory to put symlink in */ int srcname; struct coda_vattr attr; int tname; @@ -574,7 +529,7 @@ /* coda_readlink: */ struct coda_readlink_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; }; struct coda_readlink_out { @@ -587,7 +542,7 @@ /* coda_fsync: NO_OUT */ struct coda_fsync_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; }; struct coda_fsync_out { @@ -597,12 +552,12 @@ /* coda_vget: */ struct coda_vget_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; }; struct coda_vget_out { struct coda_out_hdr oh; - ViceFid VFid; + struct CodaFid Fid; int vtype; }; @@ -615,50 +570,49 @@ /* CODA_PURGEUSER is a venus->kernel call */ struct coda_purgeuser_out { struct coda_out_hdr oh; - struct coda_cred cred; + uid_t uid; }; /* coda_zapfile: */ /* CODA_ZAPFILE is a venus->kernel call */ struct coda_zapfile_out { struct coda_out_hdr oh; - ViceFid CodaFid; + struct CodaFid Fid; }; /* coda_zapdir: */ /* CODA_ZAPDIR is a venus->kernel call */ struct coda_zapdir_out { struct coda_out_hdr oh; - ViceFid CodaFid; + struct CodaFid Fid; }; /* coda_zapnode: */ /* CODA_ZAPVNODE is a venus->kernel call */ struct coda_zapvnode_out { struct coda_out_hdr oh; - struct coda_cred cred; - ViceFid VFid; + struct CodaFid Fid; }; /* coda_purgefid: */ /* CODA_PURGEFID is a venus->kernel call */ struct coda_purgefid_out { struct coda_out_hdr oh; - ViceFid CodaFid; + struct CodaFid Fid; }; /* coda_replace: */ /* CODA_REPLACE is a venus->kernel call */ struct coda_replace_out { /* coda_replace is a venus->kernel call */ struct coda_out_hdr oh; - ViceFid NewFid; - ViceFid OldFid; + struct CodaFid NewFid; + struct CodaFid OldFid; }; /* coda_open_by_fd: */ struct coda_open_by_fd_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -674,7 +628,7 @@ /* coda_open_by_path: */ struct coda_open_by_path_in { struct coda_in_hdr ih; - ViceFid VFid; + struct CodaFid Fid; int flags; }; @@ -785,10 +739,9 @@ #define CTL_INO -1 #define CTL_FILE "/coda/.CONTROL" - -#define IS_CTL_FID(fidp) ((fidp)->Volume == CTL_VOL &&\ - (fidp)->Vnode == CTL_VNO &&\ - (fidp)->Unique == CTL_UNI) +#define IS_CTL_FID(fidp) ((fidp)->opaque[1] == CTL_VOL &&\ + (fidp)->opaque[2] == CTL_VNO &&\ + (fidp)->opaque[3] == CTL_UNI) /* Data passed to mount */ diff -urN --exclude-from=../dontdiff linux-2.4.20/include/linux/coda_cache.h linux-2.4.20-coda/include/linux/coda_cache.h --- linux-2.4.20/include/linux/coda_cache.h 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/include/linux/coda_cache.h 2003-01-08 12:40:30.000000000 -0500 @@ -13,7 +13,7 @@ /* credential cache */ void coda_cache_enter(struct inode *inode, int mask); void coda_cache_clear_inode(struct inode *); -void coda_cache_clear_all(struct super_block *sb, struct coda_cred *cred); +void coda_cache_clear_all(struct super_block *sb, uid_t *uid); int coda_cache_check(struct inode *inode, int mask); /* for downcalls and attributes and lookups */ diff -urN --exclude-from=../dontdiff linux-2.4.20/include/linux/coda_fs_i.h linux-2.4.20-coda/include/linux/coda_fs_i.h --- linux-2.4.20/include/linux/coda_fs_i.h 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/include/linux/coda_fs_i.h 2003-01-08 13:03:33.000000000 -0500 @@ -17,11 +17,11 @@ * coda fs inode data */ struct coda_inode_info { - struct ViceFid c_fid; /* Coda identifier */ + struct CodaFid c_fid; /* Coda identifier */ u_short c_flags; /* flags (see below) */ struct list_head c_cilist; /* list of all coda inodes */ int c_mapcount; /* how often is this inode mmapped */ - struct coda_cred c_cached_cred; /* credentials of cached perms */ + uid_t c_cached_uid; /* credentials of cached perms */ unsigned int c_cached_perm; /* cached access permissions */ }; @@ -33,7 +33,6 @@ int cfi_magic; /* magic number */ int cfi_mapcount; /* how often this file is mapped */ struct file *cfi_container; /* container file for this cnode */ - struct coda_cred cfi_cred; /* credentials of opener */ }; #define CODA_FTOC(file) ((struct coda_file_info *)((file)->private_data)) @@ -44,11 +43,11 @@ #define C_DYING 0x4 /* from venus (which died) */ #define C_PURGE 0x8 -int coda_cnode_make(struct inode **, struct ViceFid *, struct super_block *); -struct inode *coda_iget(struct super_block *sb, struct ViceFid *fid, struct coda_vattr *attr); +int coda_cnode_make(struct inode **, struct CodaFid *, struct super_block *); +struct inode *coda_iget(struct super_block *sb, struct CodaFid *fid, struct coda_vattr *attr); int coda_cnode_makectl(struct inode **inode, struct super_block *sb); -struct inode *coda_fid_to_inode(ViceFid *fid, struct super_block *sb); -void coda_replace_fid(struct inode *, ViceFid *, ViceFid *); +struct inode *coda_fid_to_inode(struct CodaFid *fid, struct super_block *sb); +void coda_replace_fid(struct inode *, struct CodaFid *, struct CodaFid *); #endif #endif diff -urN --exclude-from=../dontdiff linux-2.4.20/include/linux/coda_linux.h linux-2.4.20-coda/include/linux/coda_linux.h --- linux-2.4.20/include/linux/coda_linux.h 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/include/linux/coda_linux.h 2003-01-08 13:07:35.000000000 -0500 @@ -42,7 +42,7 @@ int coda_permission(struct inode *inode, int mask); int coda_revalidate_inode(struct dentry *); int coda_notify_change(struct dentry *, struct iattr *); -int coda_isnullfid(ViceFid *fid); +int coda_isnullfid(struct CodaFid *fid); /* global variables */ extern int coda_debug; @@ -50,20 +50,17 @@ extern int coda_fake_statfs; /* this file: heloers */ -static __inline__ struct ViceFid *coda_i2f(struct inode *); +static __inline__ struct CodaFid *coda_i2f(struct inode *); static __inline__ char *coda_i2s(struct inode *); static __inline__ void coda_flag_inode(struct inode *, int flag); -char *coda_f2s(ViceFid *f); +char *coda_f2s(struct CodaFid *f); int coda_isroot(struct inode *i); int coda_iscontrol(const char *name, size_t length); -void coda_load_creds(struct coda_cred *cred); void coda_vattr_to_iattr(struct inode *, struct coda_vattr *); void coda_iattr_to_vattr(struct iattr *, struct coda_vattr *); unsigned short coda_flags_to_cflags(unsigned short); void print_vattr( struct coda_vattr *attr ); -int coda_cred_ok(struct coda_cred *cred); -int coda_cred_eq(struct coda_cred *cred1, struct coda_cred *cred2); /* sysctl.h */ void coda_sysctl_init(void); @@ -109,7 +106,7 @@ #define ITOC(inode) (&((inode)->u.coda_i)) -static __inline__ struct ViceFid *coda_i2f(struct inode *inode) +static __inline__ struct CodaFid *coda_i2f(struct inode *inode) { return &(ITOC(inode)->c_fid); } diff -urN --exclude-from=../dontdiff linux-2.4.20/include/linux/coda_psdev.h linux-2.4.20-coda/include/linux/coda_psdev.h --- linux-2.4.20/include/linux/coda_psdev.h 2003-01-08 12:59:05.000000000 -0500 +++ linux-2.4.20-coda/include/linux/coda_psdev.h 2003-01-08 12:40:30.000000000 -0500 @@ -32,46 +32,44 @@ /* upcalls */ -int venus_rootfid(struct super_block *sb, ViceFid *fidp); -int venus_getattr(struct super_block *sb, struct ViceFid *fid, +int venus_rootfid(struct super_block *sb, struct CodaFid *fidp); +int venus_getattr(struct super_block *sb, struct CodaFid *fid, struct coda_vattr *attr); -int venus_setattr(struct super_block *, struct ViceFid *, +int venus_setattr(struct super_block *, struct CodaFid *, struct coda_vattr *); -int venus_lookup(struct super_block *sb, struct ViceFid *fid, +int venus_lookup(struct super_block *sb, struct CodaFid *fid, const char *name, int length, int *type, - struct ViceFid *resfid); -int venus_store(struct super_block *sb, struct ViceFid *fid, int flags, - struct coda_cred *); -int venus_release(struct super_block *sb, struct ViceFid *fid, int flags); -int venus_close(struct super_block *sb, struct ViceFid *fid, int flags, - struct coda_cred *); -int venus_open(struct super_block *sb, struct ViceFid *fid, + struct CodaFid *resfid); +int venus_store(struct super_block *sb, struct CodaFid *fid, int flags, uid_t); +int venus_release(struct super_block *sb, struct CodaFid *fid, int flags); +int venus_close(struct super_block *sb, struct CodaFid *fid, int flags, uid_t); +int venus_open(struct super_block *sb, struct CodaFid *fid, int flags, struct file **f); -int venus_mkdir(struct super_block *sb, struct ViceFid *dirfid, +int venus_mkdir(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length, - struct ViceFid *newfid, struct coda_vattr *attrs); -int venus_create(struct super_block *sb, struct ViceFid *dirfid, + struct CodaFid *newfid, struct coda_vattr *attrs); +int venus_create(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length, int excl, int mode, int rdev, - struct ViceFid *newfid, struct coda_vattr *attrs) ; -int venus_rmdir(struct super_block *sb, struct ViceFid *dirfid, + struct CodaFid *newfid, struct coda_vattr *attrs) ; +int venus_rmdir(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length); -int venus_remove(struct super_block *sb, struct ViceFid *dirfid, +int venus_remove(struct super_block *sb, struct CodaFid *dirfid, const char *name, int length); -int venus_readlink(struct super_block *sb, struct ViceFid *fid, +int venus_readlink(struct super_block *sb, struct CodaFid *fid, char *buffer, int *length); -int venus_rename(struct super_block *, struct ViceFid *new_fid, - struct ViceFid *old_fid, size_t old_length, +int venus_rename(struct super_block *, struct CodaFid *new_fid, + struct CodaFid *old_fid, size_t old_length, size_t new_length, const char *old_name, const char *new_name); -int venus_link(struct super_block *sb, struct ViceFid *fid, - struct ViceFid *dirfid, const char *name, int len ); -int venus_symlink(struct super_block *sb, struct ViceFid *fid, +int venus_link(struct super_block *sb, struct CodaFid *fid, + struct CodaFid *dirfid, const char *name, int len ); +int venus_symlink(struct super_block *sb, struct CodaFid *fid, const char *name, int len, const char *symname, int symlen); -int venus_access(struct super_block *sb, struct ViceFid *fid, int mask); -int venus_pioctl(struct super_block *sb, struct ViceFid *fid, +int venus_access(struct super_block *sb, struct CodaFid *fid, int mask); +int venus_pioctl(struct super_block *sb, struct CodaFid *fid, unsigned int cmd, struct PioctlData *data); int coda_downcall(int opcode, union outputArgs *out, struct super_block *sb); -int venus_fsync(struct super_block *sb, struct ViceFid *fid); +int venus_fsync(struct super_block *sb, struct CodaFid *fid); int venus_statfs(struct super_block *sb, struct statfs *sfs);