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-all mailing list