svn commit: r208702 - stable/8/sys/fs/coda
Robert Watson
rwatson at FreeBSD.org
Tue Jun 1 15:11:18 UTC 2010
On Tue, 1 Jun 2010, Robert Watson wrote:
> Log:
> Merge r206210 from head to stable/7:
Should, of course, read stable/8...
Robert
>
> Synchronize Coda kernel module definitions in our coda.h to Coda 6's
> coda.h:
>
> - CodaFid typdef -> struct CodaFid throughout.
> - Use unsigned int instead of unsigned long for venus_dirent and other
> cosmetic fixes.
> - Introduce cuid_t and cgid_t and use instead of uid_t and gid_t in RPCs.
> - Synchronize comments and macros.
> - Use u_int32_t instead of unsigned long for coda_out_hdr.
>
> With these changes, a 64-bit Coda kernel module now works with
> coda6_client, whereas previous userspace and kernel versions of RPCs
> differed sufficiently to prevent using the file system. This has been
> verified only with casual testing, but /coda is now usable for at least
> basic operations on amd64.
>
> Approved by: re (kensmith)
>
> Modified:
> stable/8/sys/fs/coda/cnode.h
> stable/8/sys/fs/coda/coda.h
> stable/8/sys/fs/coda/coda_subr.c
> stable/8/sys/fs/coda/coda_subr.h
> stable/8/sys/fs/coda/coda_venus.c
> stable/8/sys/fs/coda/coda_venus.h
> stable/8/sys/fs/coda/coda_vfsops.c
> stable/8/sys/fs/coda/coda_vfsops.h
> stable/8/sys/fs/coda/coda_vnops.c
> Directory Properties:
> stable/8/sys/ (props changed)
> stable/8/sys/amd64/include/xen/ (props changed)
> stable/8/sys/cddl/contrib/opensolaris/ (props changed)
> stable/8/sys/contrib/dev/acpica/ (props changed)
> stable/8/sys/contrib/pf/ (props changed)
> stable/8/sys/dev/xen/xenpci/ (props changed)
> stable/8/sys/geom/sched/ (props changed)
>
> Modified: stable/8/sys/fs/coda/cnode.h
> ==============================================================================
> --- stable/8/sys/fs/coda/cnode.h Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/cnode.h Tue Jun 1 14:29:26 2010 (r208702)
> @@ -94,7 +94,7 @@ extern int coda_vfsop_print_entry;
> struct cnode {
> struct vnode *c_vnode;
> u_short c_flags; /* flags (see below) */
> - CodaFid c_fid; /* file handle */
> + struct CodaFid c_fid; /* file handle */
> struct vnode *c_ovp; /* open vnode pointer */
> u_short c_ocount; /* count of openers */
> u_short c_owrite; /* count of open for write */
> @@ -196,7 +196,8 @@ void coda_unmounting(struct mount *whoIa
> int coda_vmflush(struct cnode *cp);
>
> /* cfs_vnodeops.h */
> -struct cnode *make_coda_node(CodaFid *fid, struct mount *vfsp, short type);
> +struct cnode *make_coda_node(struct CodaFid *fid, struct mount *vfsp,
> + short type);
> int coda_vnodeopstats_init(void);
>
> /* sigh */
>
> Modified: stable/8/sys/fs/coda/coda.h
> ==============================================================================
> --- stable/8/sys/fs/coda/coda.h Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda.h Tue Jun 1 14:29:26 2010 (r208702)
> @@ -103,6 +103,8 @@ struct timespec {
> };
> #endif
>
> +typedef u_int32_t cuid_t;
> +typedef u_int32_t cgid_t;
>
> /*
> * Cfs constants
> @@ -132,14 +134,13 @@ struct timespec {
> #define C_A_F_OK 0 /* Test for existence. */
>
>
> -
> #ifndef _VENUS_DIRENT_T_
> #define _VENUS_DIRENT_T_ 1
> struct venus_dirent {
> - unsigned long d_fileno; /* file number of entry */
> + unsigned int d_fileno; /* file number of entry */
> unsigned short d_reclen; /* length of this record */
> - char d_type; /* file type, see below */
> - char d_namlen; /* length of string in d_name */
> + unsigned char d_type; /* file type, see below */
> + unsigned char d_namlen; /* length of string in d_name */
> char d_name[CODA_MAXNAMLEN + 1];/* name must be no longer than this */
> };
> #undef DIRSIZ
> @@ -169,19 +170,19 @@ struct venus_dirent {
>
> #ifdef CODA_COMPAT_5
>
> -typedef struct {
> +struct CodaFid {
> u_long Volume;
> u_long Vnode;
> u_long Unique;
> -} CodaFid;
> +};
>
> -static __inline__ ino_t coda_f2i(CodaFid *fid)
> +static __inline__ ino_t coda_f2i(struct CodaFid *fid)
> {
> if (!fid) return 0;
> return (fid->Unique + (fid->Vnode<<10) + (fid->Volume<<20));
> }
>
> -static __inline__ char * coda_f2s(CodaFid *fid)
> +static __inline__ char * coda_f2s(struct CodaFid *fid)
> {
> static char fid_str [35];
> snprintf (fid_str, 35, "[%lx.%lx.%lx]", fid->Volume,
> @@ -189,7 +190,7 @@ static __inline__ char * coda_f2s(CodaFi
> return fid_str;
> }
>
> -static __inline__ int coda_fid_eq (CodaFid *fid1, CodaFid *fid2)
> +static __inline__ int coda_fid_eq (struct CodaFid *fid1, struct CodaFid *fid2)
> {
> return (fid1->Volume == fid2->Volume &&
> fid1->Vnode == fid2->Vnode &&
> @@ -203,18 +204,18 @@ struct coda_cred {
>
> #else /* CODA_COMPAT_5 */
>
> -typedef struct {
> +struct CodaFid {
> u_int32_t opaque[4];
> -} CodaFid;
> +};
>
> -static __inline__ ino_t coda_f2i(CodaFid *fid)
> +static __inline__ ino_t coda_f2i(struct CodaFid *fid)
> {
> if ( ! fid )
> return 0;
> return (fid->opaque[3] ^ (fid->opaque[2]<<10) ^ (fid->opaque[1]<<20) ^ fid->opaque[0]);
> }
>
> -static __inline__ char * coda_f2s(CodaFid *fid)
> +static __inline__ char * coda_f2s(struct CodaFid *fid)
> {
> static char fid_str [35];
> snprintf (fid_str, 35, "[%x.%x.%x.%x]", fid->opaque[0],
> @@ -222,7 +223,7 @@ static __inline__ char * coda_f2s(CodaFi
> return fid_str;
> }
>
> -static __inline__ int coda_fid_eq (CodaFid *fid1, CodaFid *fid2)
> +static __inline__ int coda_fid_eq (struct CodaFid *fid1, struct CodaFid *fid2)
> {
> return (fid1->opaque[0] == fid2->opaque[0] &&
> fid1->opaque[1] == fid2->opaque[1] &&
> @@ -240,11 +241,11 @@ static __inline__ int coda_fid_eq (CodaF
> enum coda_vtype { C_VNON, C_VREG, C_VDIR, C_VBLK, C_VCHR, C_VLNK, C_VSOCK, C_VFIFO, C_VBAD };
>
> struct coda_vattr {
> - int va_type; /* vnode type (for create) */
> + long va_type; /* vnode type (for create) */
> u_short va_mode; /* files access mode and type */
> short va_nlink; /* number of references to file */
> - uid_t va_uid; /* owner user id */
> - gid_t va_gid; /* owner group id */
> + cuid_t va_uid; /* owner user id */
> + cgid_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 */
> @@ -344,23 +345,23 @@ struct coda_in_hdr {
> struct coda_in_hdr {
> u_int32_t opcode;
> u_int32_t unique; /* Keep multiple outstanding msgs distinct */
> - pid_t pid; /* Common to all */
> - pid_t pgid; /* Common to all */
> - uid_t uid; /* Common to all */
> + pid_t pid;
> + pid_t pgid;
> + cuid_t uid;
> };
> #endif
>
> /* 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;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> struct coda_root_in {
> @@ -373,7 +374,7 @@ struct coda_root_in {
> /* coda_open: */
> struct coda_open_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int flags;
> };
>
> @@ -387,7 +388,7 @@ struct coda_open_out {
> /* coda_close: */
> struct coda_close_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int flags;
> };
>
> @@ -398,7 +399,7 @@ struct coda_close_out {
> /* coda_ioctl: */
> struct coda_ioctl_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int cmd;
> int len;
> int rwflag;
> @@ -415,7 +416,7 @@ struct coda_ioctl_out {
> /* coda_getattr: */
> struct coda_getattr_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> struct coda_getattr_out {
> @@ -427,7 +428,7 @@ struct coda_getattr_out {
> /* coda_setattr: NO_OUT */
> struct coda_setattr_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> struct coda_vattr attr;
> };
>
> @@ -438,7 +439,7 @@ struct coda_setattr_out {
> /* coda_access: NO_OUT */
> struct coda_access_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int flags;
> };
>
> @@ -454,14 +455,14 @@ struct coda_access_out {
> /* coda_lookup: */
> struct coda_lookup_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int name; /* Place holder for data. */
> int flags;
> };
>
> struct coda_lookup_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int vtype;
> };
>
> @@ -469,7 +470,7 @@ struct coda_lookup_out {
> /* coda_create: */
> struct coda_create_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> struct coda_vattr attr;
> int excl;
> int mode;
> @@ -478,7 +479,7 @@ struct coda_create_in {
>
> struct coda_create_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + struct CodaFid Fid;
> struct coda_vattr attr;
> };
>
> @@ -486,7 +487,7 @@ struct coda_create_out {
> /* coda_remove: NO_OUT */
> struct coda_remove_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int name; /* Place holder for data. */
> };
>
> @@ -497,8 +498,8 @@ struct coda_remove_out {
> /* coda_link: NO_OUT */
> struct coda_link_in {
> struct coda_in_hdr ih;
> - CodaFid sourceFid; /* cnode to link *to* */
> - CodaFid 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. */
> };
>
> @@ -510,9 +511,9 @@ struct coda_link_out {
> /* coda_rename: NO_OUT */
> struct coda_rename_in {
> struct coda_in_hdr ih;
> - CodaFid sourceFid;
> + struct CodaFid sourceFid;
> int srcname;
> - CodaFid destFid;
> + struct CodaFid destFid;
> int destname;
> };
>
> @@ -523,14 +524,14 @@ struct coda_rename_out {
> /* coda_mkdir: */
> struct coda_mkdir_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> struct coda_vattr attr;
> int name; /* Place holder for data. */
> };
>
> struct coda_mkdir_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + struct CodaFid Fid;
> struct coda_vattr attr;
> };
>
> @@ -538,7 +539,7 @@ struct coda_mkdir_out {
> /* coda_rmdir: NO_OUT */
> struct coda_rmdir_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int name; /* Place holder for data. */
> };
>
> @@ -549,7 +550,7 @@ struct coda_rmdir_out {
> /* coda_readdir: */
> struct coda_readdir_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int count;
> int offset;
> };
> @@ -563,7 +564,7 @@ struct coda_readdir_out {
> /* coda_symlink: NO_OUT */
> struct coda_symlink_in {
> struct coda_in_hdr ih;
> - CodaFid Fid; /* Directory to put symlink in */
> + struct CodaFid Fid; /* Directory to put symlink in */
> int srcname;
> struct coda_vattr attr;
> int tname;
> @@ -576,7 +577,7 @@ struct coda_symlink_out {
> /* coda_readlink: */
> struct coda_readlink_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> struct coda_readlink_out {
> @@ -589,7 +590,7 @@ struct coda_readlink_out {
> /* coda_fsync: NO_OUT */
> struct coda_fsync_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> struct coda_fsync_out {
> @@ -599,18 +600,18 @@ struct coda_fsync_out {
> /* coda_inactive: NO_OUT */
> struct coda_inactive_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> /* coda_vget: */
> struct coda_vget_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> struct coda_vget_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int vtype;
> };
>
> @@ -626,7 +627,7 @@ struct coda_purgeuser_out {
> #ifdef CODA_COMPAT_5
> struct coda_cred cred;
> #else
> - uid_t uid;
> + cuid_t uid;
> #endif
> };
>
> @@ -634,14 +635,14 @@ struct coda_purgeuser_out {
> /* CODA_ZAPFILE is a venus->kernel call */
> struct coda_zapfile_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> /* coda_zapdir: */
> /* CODA_ZAPDIR is a venus->kernel call */
> struct coda_zapdir_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> /* coda_zapnode: */
> @@ -651,41 +652,44 @@ struct coda_zapvnode_out {
> #ifdef CODA_COMPAT_5
> struct coda_cred cred;
> #endif
> - CodaFid Fid;
> + struct CodaFid Fid;
> };
>
> /* coda_purgefid: */
> /* CODA_PURGEFID is a venus->kernel call */
> struct coda_purgefid_out {
> struct coda_out_hdr oh;
> - CodaFid Fid;
> + 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;
> - CodaFid NewFid;
> - CodaFid OldFid;
> + struct CodaFid NewFid;
> + struct CodaFid OldFid;
> };
>
> /* coda_open_by_fd: */
> struct coda_open_by_fd_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int flags;
> };
>
> struct coda_open_by_fd_out {
> struct coda_out_hdr oh;
> int fd;
> +#ifdef _KERNEL
> + /* not passed from userspace but used in-kernel only */
> struct vnode *vp;
> +#endif
> };
>
> /* coda_open_by_path: */
> struct coda_open_by_path_in {
> struct coda_in_hdr ih;
> - CodaFid Fid;
> + struct CodaFid Fid;
> int flags;
> };
>
> @@ -799,6 +803,9 @@ struct PioctlData {
>
> #define CODA_CONTROL ".CONTROL"
> #define CODA_CONTROLLEN 8
> +#define CTL_VOL -1
> +#define CTL_VNO -1
> +#define CTL_UNI -1
> #define CTL_INO -1
> #define CTL_FILE "/coda/.CONTROL"
>
> @@ -810,10 +817,9 @@ struct PioctlData {
> #define INVAL_FID { 0, 0, 0 }
> #else
> #define CTL_FID { { -1, -1, -1, -1 } }
> -#define IS_CTL_FID(fidp) ((fidp)->opaque[0] == -1 &&\
> - (fidp)->opaque[1] == -1 &&\
> - (fidp)->opaque[2] == -1 &&\
> - (fidp)->opaque[3] == -1)
> +#define IS_CTL_FID(fidp) ((fidp)->opaque[1] == CTL_VOL && \
> + (fidp)->opaque[2] == CTL_VNO && \
> + (fidp)->opaque[3] == CTL_UNI)
> #define INVAL_FID { { 0, 0, 0, 0 } }
> #endif
>
>
> Modified: stable/8/sys/fs/coda/coda_subr.c
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_subr.c Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_subr.c Tue Jun 1 14:29:26 2010 (r208702)
> @@ -164,7 +164,7 @@ coda_unsave(struct cnode *cp)
> * NOTE: this allows multiple cnodes with same fid -- dcs 1/25/95
> */
> struct cnode *
> -coda_find(CodaFid *fid)
> +coda_find(struct CodaFid *fid)
> {
> struct cnode *cp;
>
>
> Modified: stable/8/sys/fs/coda/coda_subr.h
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_subr.h Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_subr.h Tue Jun 1 14:29:26 2010 (r208702)
> @@ -35,7 +35,7 @@
>
> struct cnode *coda_alloc(void);
> void coda_free(struct cnode *cp);
> -struct cnode *coda_find(CodaFid *fid);
> +struct cnode *coda_find(struct CodaFid *fid);
> void coda_flush(struct coda_mntinfo *mnt, enum dc_status dcstat);
> void coda_testflush(void);
> void coda_checkunmounting(struct mount *mp);
>
> Modified: stable/8/sys/fs/coda/coda_venus.c
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_venus.c Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_venus.c Tue Jun 1 14:29:26 2010 (r208702)
> @@ -177,7 +177,7 @@ int coda_kernel_version = CODA_KERNEL_VE
>
> int
> venus_root(void *mdp, struct ucred *cred, struct proc *p,
> - /*out*/ CodaFid *VFid)
> + /*out*/ struct CodaFid *VFid)
> {
> DECL_NO_IN(coda_root); /* sets Isize & Osize */
> ALLOC_NO_IN(coda_root); /* sets inp & outp */
> @@ -194,7 +194,7 @@ venus_root(void *mdp, struct ucred *cred
> }
>
> int
> -venus_open(void *mdp, CodaFid *fid, int flag, struct ucred *cred,
> +venus_open(void *mdp, struct CodaFid *fid, int flag, struct ucred *cred,
> struct proc *p, /*out*/ struct vnode **vp)
> {
> int cflag;
> @@ -215,7 +215,7 @@ venus_open(void *mdp, CodaFid *fid, int
> }
>
> int
> -venus_close(void *mdp, CodaFid *fid, int flag, struct ucred *cred,
> +venus_close(void *mdp, struct CodaFid *fid, int flag, struct ucred *cred,
> struct proc *p)
> {
> int cflag;
> @@ -252,7 +252,7 @@ venus_write(void)
> * normal files.
> */
> int
> -venus_ioctl(void *mdp, CodaFid *fid, int com, int flag, caddr_t data,
> +venus_ioctl(void *mdp, struct CodaFid *fid, int com, int flag, caddr_t data,
> struct ucred *cred, struct proc *p)
> {
> DECL(coda_ioctl); /* sets Isize & Osize */
> @@ -304,7 +304,8 @@ venus_ioctl(void *mdp, CodaFid *fid, int
> }
>
> int
> -venus_getattr(void *mdp, CodaFid *fid, struct ucred *cred, struct vattr *vap)
> +venus_getattr(void *mdp, struct CodaFid *fid, struct ucred *cred,
> + struct vattr *vap)
> {
> struct proc *p;
> DECL(coda_getattr); /* sets Isize & Osize */
> @@ -326,7 +327,8 @@ venus_getattr(void *mdp, CodaFid *fid, s
> }
>
> int
> -venus_setattr(void *mdp, CodaFid *fid, struct vattr *vap, struct ucred *cred)
> +venus_setattr(void *mdp, struct CodaFid *fid, struct vattr *vap,
> + struct ucred *cred)
> {
> struct proc *p;
> DECL_NO_OUT(coda_setattr); /* sets Isize & Osize */
> @@ -347,8 +349,8 @@ venus_setattr(void *mdp, CodaFid *fid, s
> }
>
> int
> -venus_access(void *mdp, CodaFid *fid, accmode_t accmode, struct ucred *cred,
> - struct proc *p)
> +venus_access(void *mdp, struct CodaFid *fid, accmode_t accmode,
> + struct ucred *cred, struct proc *p)
> {
> DECL_NO_OUT(coda_access); /* sets Isize & Osize */
> ALLOC_NO_OUT(coda_access); /* sets inp & outp */
> @@ -374,8 +376,8 @@ venus_access(void *mdp, CodaFid *fid, ac
> }
>
> int
> -venus_readlink(void *mdp, CodaFid *fid, struct ucred *cred, struct proc *p,
> - /*out*/ char **str, int *len)
> +venus_readlink(void *mdp, struct CodaFid *fid, struct ucred *cred,
> + struct proc *p, /*out*/ char **str, int *len)
> {
> DECL(coda_readlink); /* sets Isize & Osize */
> coda_readlink_size += CODA_MAXPATHLEN;
> @@ -400,7 +402,7 @@ venus_readlink(void *mdp, CodaFid *fid,
> }
>
> int
> -venus_fsync(void *mdp, CodaFid *fid, struct proc *p)
> +venus_fsync(void *mdp, struct CodaFid *fid, struct proc *p)
> {
> DECL_NO_OUT(coda_fsync); /* sets Isize & Osize */
> ALLOC_NO_OUT(coda_fsync); /* sets inp & outp */
> @@ -420,8 +422,9 @@ venus_fsync(void *mdp, CodaFid *fid, str
> }
>
> int
> -venus_lookup(void *mdp, CodaFid *fid, const char *nm, int len,
> - struct ucred *cred, struct proc *p, /*out*/ CodaFid *VFid, int *vtype)
> +venus_lookup(void *mdp, struct CodaFid *fid, const char *nm, int len,
> + struct ucred *cred, struct proc *p, /*out*/ struct CodaFid *VFid,
> + int *vtype)
> {
> DECL(coda_lookup); /* sets Isize & Osize */
> coda_lookup_size += len + 1;
> @@ -457,9 +460,9 @@ venus_lookup(void *mdp, CodaFid *fid, co
> }
>
> int
> -venus_create(void *mdp, CodaFid *fid, const char *nm, int len, int exclusive,
> - int mode, struct vattr *va, struct ucred *cred, struct proc *p,
> - /*out*/ CodaFid *VFid, struct vattr *attr)
> +venus_create(void *mdp, struct CodaFid *fid, const char *nm, int len,
> + int exclusive, int mode, struct vattr *va, struct ucred *cred,
> + struct proc *p, /*out*/ struct CodaFid *VFid, struct vattr *attr)
> {
> DECL(coda_create); /* sets Isize & Osize */
> coda_create_size += len + 1;
> @@ -488,7 +491,7 @@ venus_create(void *mdp, CodaFid *fid, co
> }
>
> int
> -venus_remove(void *mdp, CodaFid *fid, const char *nm, int len,
> +venus_remove(void *mdp, struct CodaFid *fid, const char *nm, int len,
> struct ucred *cred, struct proc *p)
> {
> DECL_NO_OUT(coda_remove); /* sets Isize & Osize */
> @@ -511,8 +514,8 @@ venus_remove(void *mdp, CodaFid *fid, co
> }
>
> int
> -venus_link(void *mdp, CodaFid *fid, CodaFid *tfid, const char *nm, int len,
> - struct ucred *cred, struct proc *p)
> +venus_link(void *mdp, struct CodaFid *fid, struct CodaFid *tfid,
> + const char *nm, int len, struct ucred *cred, struct proc *p)
> {
> DECL_NO_OUT(coda_link); /* sets Isize & Osize */
> coda_link_size += len + 1;
> @@ -535,8 +538,9 @@ venus_link(void *mdp, CodaFid *fid, Coda
> }
>
> int
> -venus_rename(void *mdp, CodaFid *fid, CodaFid *tfid, const char *nm, int len,
> - const char *tnm, int tlen, struct ucred *cred, struct proc *p)
> +venus_rename(void *mdp, struct CodaFid *fid, struct CodaFid *tfid,
> + const char *nm, int len, const char *tnm, int tlen, struct ucred *cred,
> + struct proc *p)
> {
> DECL_NO_OUT(coda_rename); /* sets Isize & Osize */
> coda_rename_size += len + 1 + tlen + 1;
> @@ -562,9 +566,9 @@ venus_rename(void *mdp, CodaFid *fid, Co
> }
>
> int
> -venus_mkdir(void *mdp, CodaFid *fid, const char *nm, int len,
> +venus_mkdir(void *mdp, struct CodaFid *fid, const char *nm, int len,
> struct vattr *va, struct ucred *cred, struct proc *p,
> - /*out*/ CodaFid *VFid, struct vattr *ova)
> + /*out*/ struct CodaFid *VFid, struct vattr *ova)
> {
> DECL(coda_mkdir); /* sets Isize & Osize */
> coda_mkdir_size += len + 1;
> @@ -591,7 +595,7 @@ venus_mkdir(void *mdp, CodaFid *fid, con
> }
>
> int
> -venus_rmdir(void *mdp, CodaFid *fid, const char *nm, int len,
> +venus_rmdir(void *mdp, struct CodaFid *fid, const char *nm, int len,
> struct ucred *cred, struct proc *p)
> {
> DECL_NO_OUT(coda_rmdir); /* sets Isize & Osize */
> @@ -614,7 +618,7 @@ venus_rmdir(void *mdp, CodaFid *fid, con
> }
>
> int
> -venus_symlink(void *mdp, CodaFid *fid, const char *lnm, int llen,
> +venus_symlink(void *mdp, struct CodaFid *fid, const char *lnm, int llen,
> const char *nm, int len, struct vattr *va, struct ucred *cred,
> struct proc *p)
> {
> @@ -645,7 +649,7 @@ venus_symlink(void *mdp, CodaFid *fid, c
> * XXX: Unused.
> */
> int
> -venus_readdir(void *mdp, CodaFid *fid, int count, int offset,
> +venus_readdir(void *mdp, struct CodaFid *fid, int count, int offset,
> struct ucred *cred, struct proc *p, /*out*/ char *buffer, int *len)
> {
> DECL(coda_readdir); /* sets Isize & Osize */
> @@ -672,8 +676,8 @@ venus_readdir(void *mdp, CodaFid *fid, i
> }
>
> int
> -venus_fhtovp(void *mdp, CodaFid *fid, struct ucred *cred, struct proc *p,
> - /*out*/ CodaFid *VFid, int *vtype)
> +venus_fhtovp(void *mdp, struct CodaFid *fid, struct ucred *cred,
> + struct proc *p, /*out*/ struct CodaFid *VFid, int *vtype)
> {
> DECL(coda_vget); /* sets Isize & Osize */
> ALLOC(coda_vget); /* sets inp & outp */
>
> Modified: stable/8/sys/fs/coda/coda_venus.h
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_venus.h Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_venus.h Tue Jun 1 14:29:26 2010 (r208702)
> @@ -34,49 +34,50 @@
> #define _CODA_VENUS_H_
>
> int venus_root(void *mdp, struct ucred *cred, struct proc *p,
> - /*out*/ CodaFid *VFid);
> -int venus_open(void *mdp, CodaFid *fid, int flag, struct ucred *cred,
> - struct proc *p, /*out*/ struct vnode **vp);
> -int venus_close(void *mdp, CodaFid *fid, int flag, struct ucred *cred,
> - struct proc *p);
> + /*out*/ struct CodaFid *VFid);
> +int venus_open(void *mdp, struct CodaFid *fid, int flag,
> + struct ucred *cred, struct proc *p, /*out*/ struct vnode **vp);
> +int venus_close(void *mdp, struct CodaFid *fid, int flag,
> + struct ucred *cred, struct proc *p);
> void venus_read(void);
> void venus_write(void);
> -int venus_ioctl(void *mdp, CodaFid *fid, int com, int flag, caddr_t data,
> - struct ucred *cred, struct proc *p);
> -int venus_getattr(void *mdp, CodaFid *fid, struct ucred *cred,
> +int venus_ioctl(void *mdp, struct CodaFid *fid, int com, int flag,
> + caddr_t data, struct ucred *cred, struct proc *p);
> +int venus_getattr(void *mdp, struct CodaFid *fid, struct ucred *cred,
> struct vattr *vap);
> -int venus_setattr(void *mdp, CodaFid *fid, struct vattr *vap,
> +int venus_setattr(void *mdp, struct CodaFid *fid, struct vattr *vap,
> struct ucred *cred);
> -int venus_access(void *mdp, CodaFid *fid, int mode, struct ucred *cred,
> - struct proc *p);
> -int venus_readlink(void *mdp, CodaFid *fid, struct ucred *cred,
> +int venus_access(void *mdp, struct CodaFid *fid, int mode,
> + struct ucred *cred, struct proc *p);
> +int venus_readlink(void *mdp, struct CodaFid *fid, struct ucred *cred,
> struct proc *p, /*out*/ char **str, int *len);
> -int venus_fsync(void *mdp, CodaFid *fid, struct proc *p);
> -int venus_lookup(void *mdp, CodaFid *fid, const char *nm, int len,
> - struct ucred *cred, struct proc *p, /*out*/ CodaFid *VFid,
> +int venus_fsync(void *mdp, struct CodaFid *fid, struct proc *p);
> +int venus_lookup(void *mdp, struct CodaFid *fid, const char *nm, int len,
> + struct ucred *cred, struct proc *p, /*out*/ struct CodaFid *VFid,
> int *vtype);
> -int venus_create(void *mdp, CodaFid *fid, const char *nm, int len,
> +int venus_create(void *mdp, struct CodaFid *fid, const char *nm, int len,
> int exclusive, int mode, struct vattr *va, struct ucred *cred,
> - struct proc *p, /*out*/ CodaFid *VFid, struct vattr *attr);
> -int venus_remove(void *mdp, CodaFid *fid, const char *nm, int len,
> + struct proc *p, /*out*/ struct CodaFid *VFid,
> + struct vattr *attr);
> +int venus_remove(void *mdp, struct CodaFid *fid, const char *nm, int len,
> struct ucred *cred, struct proc *p);
> -int venus_link(void *mdp, CodaFid *fid, CodaFid *tfid, const char *nm,
> - int len, struct ucred *cred, struct proc *p);
> -int venus_rename(void *mdp, CodaFid *fid, CodaFid *tfid, const char *nm,
> - int len, const char *tnm, int tlen, struct ucred *cred,
> - struct proc *p);
> -int venus_mkdir(void *mdp, CodaFid *fid, const char *nm, int len,
> +int venus_link(void *mdp, struct CodaFid *fid, struct CodaFid *tfid,
> + const char *nm, int len, struct ucred *cred, struct proc *p);
> +int venus_rename(void *mdp, struct CodaFid *fid, struct CodaFid *tfid,
> + const char *nm, int len, const char *tnm, int tlen,
> + struct ucred *cred, struct proc *p);
> +int venus_mkdir(void *mdp, struct CodaFid *fid, const char *nm, int len,
> struct vattr *va, struct ucred *cred, struct proc *p,
> - /*out*/ CodaFid *VFid, struct vattr *ova);
> -int venus_rmdir(void *mdp, CodaFid *fid, const char *nm, int len,
> + /*out*/ struct CodaFid *VFid, struct vattr *ova);
> +int venus_rmdir(void *mdp, struct CodaFid *fid, const char *nm, int len,
> + struct ucred *cred, struct proc *p);
> +int venus_symlink(void *mdp, struct CodaFid *fid, const char *lnm,
> + int llen, const char *nm, int len, struct vattr *va,
> struct ucred *cred, struct proc *p);
> -int venus_symlink(void *mdp, CodaFid *fid, const char *lnm, int llen,
> - const char *nm, int len, struct vattr *va, struct ucred *cred,
> - struct proc *p);
> -int venus_readdir(void *mdp, CodaFid *fid, int count, int offset,
> +int venus_readdir(void *mdp, struct CodaFid *fid, int count, int offset,
> struct ucred *cred, struct proc *p, /*out*/ char *buffer,
> int *len);
> -int venus_fhtovp(void *mdp, CodaFid *fid, struct ucred *cred,
> - struct proc *p, /*out*/ CodaFid *VFid, int *vtype);
> +int venus_fhtovp(void *mdp, struct CodaFid *fid, struct ucred *cred,
> + struct proc *p, /*out*/ struct CodaFid *VFid, int *vtype);
>
> #endif /* !_CODA_VENUS_H_ */
>
> Modified: stable/8/sys/fs/coda/coda_vfsops.c
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_vfsops.c Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_vfsops.c Tue Jun 1 14:29:26 2010 (r208702)
> @@ -113,8 +113,8 @@ coda_mount(struct mount *vfsp)
> struct cdev *dev;
> struct coda_mntinfo *mi;
> struct vnode *rootvp;
> - CodaFid rootfid = INVAL_FID;
> - CodaFid ctlfid = CTL_FID;
> + struct CodaFid rootfid = INVAL_FID;
> + struct CodaFid ctlfid = CTL_FID;
> int error;
> struct nameidata ndp;
> ENTRY;
> @@ -268,8 +268,8 @@ coda_root(struct mount *vfsp, int flags,
> int error;
> struct proc *p;
> struct thread *td;
> - CodaFid VFid;
> - static const CodaFid invalfid = INVAL_FID;
> + struct CodaFid VFid;
> + static const struct CodaFid invalfid = INVAL_FID;
>
> td = curthread;
> p = td->td_proc;
> @@ -288,7 +288,7 @@ coda_root(struct mount *vfsp, int flags,
> * but not in any released versions as of 6 Mar 2003.
> */
> if (memcmp(&VTOC(mi->mi_rootvp)->c_fid, &invalfid,
> - sizeof(CodaFid)) != 0 || mi->mi_started == 0) {
> + sizeof(struct CodaFid)) != 0 || mi->mi_started == 0) {
> /*
> * Found valid root.
> */
> @@ -407,7 +407,7 @@ coda_fhtovp(struct mount *vfsp, struct f
> int error;
> struct thread *td = curthread; /* XXX -mach */
> struct proc *p = td->td_proc;
> - CodaFid VFid;
> + struct CodaFid VFid;
> int vtype;
>
> ENTRY;
>
> Modified: stable/8/sys/fs/coda/coda_vfsops.h
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_vfsops.h Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_vfsops.h Tue Jun 1 14:29:26 2010 (r208702)
> @@ -42,7 +42,7 @@
> struct cfid {
> u_short cfid_len;
> u_short padding;
> - CodaFid cfid_fid;
> + struct CodaFid cfid_fid;
> };
>
> struct mbuf;
>
> Modified: stable/8/sys/fs/coda/coda_vnops.c
> ==============================================================================
> --- stable/8/sys/fs/coda/coda_vnops.c Tue Jun 1 14:26:27 2010 (r208701)
> +++ stable/8/sys/fs/coda/coda_vnops.c Tue Jun 1 14:29:26 2010 (r208702)
> @@ -872,7 +872,7 @@ coda_lookup(struct vop_cachedlookup_args
> struct cnode *cp;
> const char *nm = cnp->cn_nameptr;
> int len = cnp->cn_namelen;
> - CodaFid VFid;
> + struct CodaFid VFid;
> int vtype;
> int error = 0;
>
> @@ -1009,7 +1009,7 @@ coda_create(struct vop_create_args *ap)
> struct cnode *cp;
> const char *nm = cnp->cn_nameptr;
> int len = cnp->cn_namelen;
> - CodaFid VFid;
> + struct CodaFid VFid;
> struct vattr attr;
>
> MARK_ENTRY(CODA_CREATE_STATS);
> @@ -1278,7 +1278,7 @@ coda_mkdir(struct vop_mkdir_args *ap)
> const char *nm = cnp->cn_nameptr;
> int len = cnp->cn_namelen;
> struct cnode *cp;
> - CodaFid VFid;
> + struct CodaFid VFid;
> struct vattr ova;
>
> MARK_ENTRY(CODA_MKDIR_STATS);
> @@ -1687,7 +1687,7 @@ coda_print_cred(struct ucred *cred)
> * coda_unsave.
> */
> struct cnode *
> -make_coda_node(CodaFid *fid, struct mount *vfsp, short type)
> +make_coda_node(struct CodaFid *fid, struct mount *vfsp, short type)
> {
> struct cnode *cp;
> struct vnode *vp;
>
More information about the svn-src-stable
mailing list