Date: Tue, 28 Oct 2008 13:44:11 +0000 (UTC) From: Edward Tomasz Napierala <trasz@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r184413 - in head: share/man/man9 sys/cddl/compat/opensolaris/kern sys/cddl/compat/opensolaris/sys sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/compat/linux sys/fs/cd9660 sys/fs/c... Message-ID: <200810281344.m9SDiBX3095365@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: trasz Date: Tue Oct 28 13:44:11 2008 New Revision: 184413 URL: http://svn.freebsd.org/changeset/base/184413 Log: Introduce accmode_t. This is required for NFSv4 ACLs - it will be neccessary to add more V* constants, and the variables changed by this patch were often being assigned to mode_t variables, which is 16 bit. Approved by: rwatson (mentor) Modified: head/share/man/man9/VOP_ACCESS.9 head/share/man/man9/vaccess.9 head/share/man/man9/vaccess_acl_posix1e.9 head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c head/sys/cddl/compat/opensolaris/sys/policy.h head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c head/sys/compat/linux/linux_getcwd.c head/sys/fs/cd9660/cd9660_vfsops.c head/sys/fs/cd9660/cd9660_vnops.c head/sys/fs/coda/coda_vnops.c head/sys/fs/devfs/devfs_vnops.c head/sys/fs/hpfs/hpfs_vnops.c head/sys/fs/msdosfs/msdosfs_vfsops.c head/sys/fs/msdosfs/msdosfs_vnops.c head/sys/fs/ntfs/ntfs_vnops.c head/sys/fs/nullfs/null_vnops.c head/sys/fs/nwfs/nwfs_vnops.c head/sys/fs/pseudofs/pseudofs_vnops.c head/sys/fs/smbfs/smbfs_vnops.c head/sys/fs/tmpfs/tmpfs_vnops.c head/sys/fs/udf/udf_vnops.c head/sys/fs/unionfs/union_vnops.c head/sys/gnu/fs/ext2fs/ext2_vfsops.c head/sys/gnu/fs/ext2fs/ext2_vnops.c head/sys/gnu/fs/reiserfs/reiserfs_vfsops.c head/sys/gnu/fs/reiserfs/reiserfs_vnops.c head/sys/gnu/fs/xfs/FreeBSD/xfs_super.c head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c head/sys/kern/subr_acl_posix1e.c head/sys/kern/uipc_mqueue.c head/sys/kern/uipc_shm.c head/sys/kern/vfs_subr.c head/sys/kern/vfs_syscalls.c head/sys/kern/vfs_vnops.c head/sys/kern/vnode_if.src head/sys/nfs4client/nfs4_vnops.c head/sys/nfsclient/nfs_vnops.c head/sys/nfsserver/nfs_serv.c head/sys/security/mac/mac_framework.h head/sys/security/mac/mac_policy.h head/sys/security/mac/mac_vfs.c head/sys/security/mac_biba/mac_biba.c head/sys/security/mac_bsdextended/ugidfw_internal.h head/sys/security/mac_bsdextended/ugidfw_vnode.c head/sys/security/mac_lomac/mac_lomac.c head/sys/security/mac_mls/mac_mls.c head/sys/security/mac_stub/mac_stub.c head/sys/security/mac_test/mac_test.c head/sys/sys/_types.h head/sys/sys/extattr.h head/sys/sys/types.h head/sys/sys/vnode.h head/sys/ufs/ffs/ffs_vfsops.c head/sys/ufs/ufs/ufs_vnops.c Modified: head/share/man/man9/VOP_ACCESS.9 ============================================================================== --- head/share/man/man9/VOP_ACCESS.9 Tue Oct 28 12:49:07 2008 (r184412) +++ head/share/man/man9/VOP_ACCESS.9 Tue Oct 28 13:44:11 2008 (r184413) @@ -39,16 +39,16 @@ .In sys/param.h .In sys/vnode.h .Ft int -.Fn VOP_ACCESS "struct vnode *vp" "int mode" "struct ucred *cred" "struct thread *td" +.Fn VOP_ACCESS "struct vnode *vp" "accmode_t accmode" "struct ucred *cred" "struct thread *td" .Sh DESCRIPTION This entry point checks the access permissions of the file against the given credentials. .Pp Its arguments are: -.Bl -tag -width mode +.Bl -tag -width accmode .It Fa vp The vnode of the file to check. -.It Fa mode +.It Fa accmode The type of access required. .It Fa cred The user credentials to check. @@ -57,8 +57,8 @@ The thread which is checking. .El .Pp The -.Fa mode -is a mask which can contain +.Fa accmode +is a mask which can contain flags described in <sys/vnode.h>, e.g. .Dv VREAD , .Dv VWRITE or @@ -71,7 +71,7 @@ otherwise an appropriate error code is r .Sh PSEUDOCODE .Bd -literal int -vop_access(struct vnode *vp, int mode, struct ucred *cred, struct thread *td) +vop_access(struct vnode *vp, accmode_t accmode, struct ucred *cred, struct thread *td) { int error; @@ -80,7 +80,7 @@ vop_access(struct vnode *vp, int mode, s * unless the file is a socket, fifo, or a block or * character device resident on the filesystem. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VLNK: @@ -93,7 +93,7 @@ vop_access(struct vnode *vp, int mode, s } /* If immutable bit set, nobody gets to write it. */ - if ((mode & VWRITE) && vp has immutable bit set) + if ((accmode & VWRITE) && vp has immutable bit set) return EPERM; /* Otherwise, user id 0 always gets access. */ @@ -104,11 +104,11 @@ vop_access(struct vnode *vp, int mode, s /* Otherwise, check the owner. */ if (cred->cr_uid == owner of vp) { - if (mode & VEXEC) + if (accmode & VEXEC) mask |= S_IXUSR; - if (mode & VREAD) + if (accmode & VREAD) mask |= S_IRUSR; - if (mode & VWRITE) + if (accmode & VWRITE) mask |= S_IWUSR; return (((mode of vp) & mask) == mask ? 0 : EACCES); } @@ -116,21 +116,21 @@ vop_access(struct vnode *vp, int mode, s /* Otherwise, check the groups. */ for (i = 0, gp = cred->cr_groups; i < cred->cr_ngroups; i++, gp++) if (group of vp == *gp) { - if (mode & VEXEC) + if (accmode & VEXEC) mask |= S_IXGRP; - if (mode & VREAD) + if (accmode & VREAD) mask |= S_IRGRP; - if (mode & VWRITE) + if (accmode & VWRITE) mask |= S_IWGRP; return (((mode of vp) & mask) == mask ? 0 : EACCES); } /* Otherwise, check everyone else. */ - if (mode & VEXEC) + if (accmode & VEXEC) mask |= S_IXOTH; - if (mode & VREAD) + if (accmode & VREAD) mask |= S_IROTH; - if (mode & VWRITE) + if (accmode & VWRITE) mask |= S_IWOTH; return (((mode of vp) & mask) == mask ? 0 : EACCES); } Modified: head/share/man/man9/vaccess.9 ============================================================================== --- head/share/man/man9/vaccess.9 Tue Oct 28 12:49:07 2008 (r184412) +++ head/share/man/man9/vaccess.9 Tue Oct 28 13:44:11 2008 (r184413) @@ -40,7 +40,7 @@ .Fa "mode_t file_mode" .Fa "uid_t file_uid" .Fa "gid_t file_gid" -.Fa "mode_t acc_mode" +.Fa "accmode_t accmode" .Fa "struct ucred *cred" .Fa "int *privused" .Fc @@ -59,7 +59,7 @@ owning UID owning GID .Fa file_gid , desired access mode -.Fa acc_mode , +.Fa accmode , requesting credential .Fa cred , and an optional call-by-reference Modified: head/share/man/man9/vaccess_acl_posix1e.9 ============================================================================== --- head/share/man/man9/vaccess_acl_posix1e.9 Tue Oct 28 12:49:07 2008 (r184412) +++ head/share/man/man9/vaccess_acl_posix1e.9 Tue Oct 28 13:44:11 2008 (r184413) @@ -41,7 +41,7 @@ .Fa "uid_t file_uid" .Fa "gid_t file_gid" .Fa "struct acl *acl" -.Fa "mode_t acc_mode" +.Fa "accmode_t accmode" .Fa "struct ucred *cred" .Fa "int *privused" .Fc @@ -59,7 +59,7 @@ owning GID access ACL for the file .Fa acl , desired access mode -.Fa acc_mode , +.Fa accmode , requesting credential .Fa cred , and an optional call-by-reference Modified: head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c ============================================================================== --- head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/cddl/compat/opensolaris/kern/opensolaris_policy.c Tue Oct 28 13:44:11 2008 (r184413) @@ -91,17 +91,17 @@ secpolicy_vnode_remove(struct ucred *cre int secpolicy_vnode_access(struct ucred *cred, struct vnode *vp, uint64_t owner, - int mode) + accmode_t accmode) { - if ((mode & VREAD) && priv_check_cred(cred, PRIV_VFS_READ, 0) != 0) { + if ((accmode & VREAD) && priv_check_cred(cred, PRIV_VFS_READ, 0) != 0) { return (EACCES); } - if ((mode & VWRITE) && + if ((accmode & VWRITE) && priv_check_cred(cred, PRIV_VFS_WRITE, 0) != 0) { return (EACCES); } - if (mode & VEXEC) { + if (accmode & VEXEC) { if (vp->v_type == VDIR) { if (priv_check_cred(cred, PRIV_VFS_LOOKUP, 0) != 0) { return (EACCES); Modified: head/sys/cddl/compat/opensolaris/sys/policy.h ============================================================================== --- head/sys/cddl/compat/opensolaris/sys/policy.h Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/cddl/compat/opensolaris/sys/policy.h Tue Oct 28 13:44:11 2008 (r184413) @@ -46,7 +46,7 @@ int secpolicy_basic_link(struct ucred * int secpolicy_vnode_stky_modify(struct ucred *cred); int secpolicy_vnode_remove(struct ucred *cred); int secpolicy_vnode_access(struct ucred *cred, struct vnode *vp, - uint64_t owner, int mode); + uint64_t owner, accmode_t accmode); int secpolicy_vnode_setdac(struct ucred *cred, uid_t owner); int secpolicy_vnode_setattr(struct ucred *cred, struct vnode *vp, struct vattr *vap, const struct vattr *ovap, int flags, Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ctldir.c Tue Oct 28 13:44:11 2008 (r184413) @@ -237,14 +237,14 @@ static int zfsctl_common_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { - int mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; - if (mode & VWRITE) + if (accmode & VWRITE) return (EACCES); return (0); Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c ============================================================================== --- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -3194,13 +3194,13 @@ static int zfs_freebsd_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { - return (zfs_access(ap->a_vp, ap->a_mode, 0, ap->a_cred)); + return (zfs_access(ap->a_vp, ap->a_accmode, 0, ap->a_cred)); } static int Modified: head/sys/compat/linux/linux_getcwd.c ============================================================================== --- head/sys/compat/linux/linux_getcwd.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/compat/linux/linux_getcwd.c Tue Oct 28 13:44:11 2008 (r184413) @@ -307,7 +307,7 @@ linux_getcwd_common (lvp, rvp, bpp, bufp struct vnode *uvp = NULL; char *bp = NULL; int error; - int perms = VEXEC; + accmode_t accmode = VEXEC; if (rvp == NULL) { rvp = fdp->fd_rdir; @@ -352,10 +352,10 @@ linux_getcwd_common (lvp, rvp, bpp, bufp * whether or not caller cares. */ if (flags & GETCWD_CHECK_ACCESS) { - error = VOP_ACCESS(lvp, perms, td->td_ucred, td); + error = VOP_ACCESS(lvp, accmode, td->td_ucred, td); if (error) goto out; - perms = VEXEC|VREAD; + accmode = VEXEC|VREAD; } /* Modified: head/sys/fs/cd9660/cd9660_vfsops.c ============================================================================== --- head/sys/fs/cd9660/cd9660_vfsops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/cd9660/cd9660_vfsops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -128,7 +128,7 @@ cd9660_mount(struct mount *mp, struct th struct vnode *devvp; char *fspec; int error; - mode_t accessmode; + accmode_t accmode; struct nameidata ndp; struct iso_mnt *imp = 0; @@ -168,9 +168,9 @@ cd9660_mount(struct mount *mp, struct th * Verify that user has necessary permissions on the device, * or has superuser abilities */ - accessmode = VREAD; + accmode = VREAD; vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY); - error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td); + error = VOP_ACCESS(devvp, accmode, td->td_ucred, td); if (error) error = priv_check(td, PRIV_VFS_MOUNT_PERM); if (error) { Modified: head/sys/fs/cd9660/cd9660_vnops.c ============================================================================== --- head/sys/fs/cd9660/cd9660_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/cd9660/cd9660_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -125,14 +125,14 @@ static int cd9660_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { struct vnode *vp = ap->a_vp; struct iso_node *ip = VTOI(vp); - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; if (vp->v_type == VCHR || vp->v_type == VBLK) return (EOPNOTSUPP); @@ -142,7 +142,7 @@ cd9660_access(ap) * fifo, or a block or character device resident on the * filesystem. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VLNK: @@ -155,7 +155,7 @@ cd9660_access(ap) } return (vaccess(vp->v_type, ip->inode.iso_mode, ip->inode.iso_uid, - ip->inode.iso_gid, ap->a_mode, ap->a_cred, NULL)); + ip->inode.iso_gid, ap->a_accmode, ap->a_cred, NULL)); } static int Modified: head/sys/fs/coda/coda_vnops.c ============================================================================== --- head/sys/fs/coda/coda_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/coda/coda_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -607,7 +607,7 @@ coda_access(struct vop_access_args *ap) /* true args */ struct vnode *vp = ap->a_vp; struct cnode *cp = VTOC(vp); - int mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; struct ucred *cred = ap->a_cred; struct thread *td = ap->a_td; /* locals */ @@ -624,7 +624,7 @@ coda_access(struct vop_access_args *ap) * Bogus hack - all will be marked as successes. */ MARK_INT_SAT(CODA_ACCESS_STATS); - return (((mode & VREAD) && !(mode & (VWRITE | VEXEC))) + return (((accmode & VREAD) && !(accmode & (VWRITE | VEXEC))) ? 0 : EACCES); } @@ -636,11 +636,11 @@ coda_access(struct vop_access_args *ap) */ if (coda_access_cache && VALID_ACCCACHE(cp) && (cred->cr_uid == cp->c_cached_uid) && - (mode & cp->c_cached_mode) == mode) { + (accmode & cp->c_cached_mode) == accmode) { MARK_INT_SAT(CODA_ACCESS_STATS); return (0); } - error = venus_access(vtomi(vp), &cp->c_fid, mode, cred, td->td_proc); + error = venus_access(vtomi(vp), &cp->c_fid, accmode, cred, td->td_proc); if (error == 0 && coda_access_cache) { /*- * When we have a new successful request, we consider three @@ -658,10 +658,10 @@ coda_access(struct vop_access_args *ap) */ cp->c_flags |= C_ACCCACHE; if (cp->c_cached_uid != cred->cr_uid) { - cp->c_cached_mode = mode; + cp->c_cached_mode = accmode; cp->c_cached_uid = cred->cr_uid; } else - cp->c_cached_mode |= mode; + cp->c_cached_mode |= accmode; } return (error); } Modified: head/sys/fs/devfs/devfs_vnops.c ============================================================================== --- head/sys/fs/devfs/devfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/devfs/devfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -372,7 +372,7 @@ devfs_access(struct vop_access_args *ap) de = de->de_dir; error = vaccess(vp->v_type, de->de_mode, de->de_uid, de->de_gid, - ap->a_mode, ap->a_cred, NULL); + ap->a_accmode, ap->a_cred, NULL); if (!error) return (error); if (error != EACCES) Modified: head/sys/fs/hpfs/hpfs_vnops.c ============================================================================== --- head/sys/fs/hpfs/hpfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/hpfs/hpfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -683,14 +683,14 @@ int hpfs_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { struct vnode *vp = ap->a_vp; struct hpfsnode *hp = VTOHP(vp); - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; dprintf(("hpfs_access(0x%x):\n", hp->h_no)); @@ -699,7 +699,7 @@ hpfs_access(ap) * unless the file is a socket, fifo, or a block or * character device resident on the filesystem. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch ((int)vp->v_type) { case VDIR: case VLNK: @@ -711,7 +711,7 @@ hpfs_access(ap) } return (vaccess(vp->v_type, hp->h_mode, hp->h_uid, hp->h_gid, - ap->a_mode, ap->a_cred, NULL)); + ap->a_accmode, ap->a_cred, NULL)); } /* Modified: head/sys/fs/msdosfs/msdosfs_vfsops.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_vfsops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/msdosfs/msdosfs_vfsops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -240,7 +240,7 @@ msdosfs_mount(struct mount *mp, struct t struct msdosfsmount *pmp = NULL; struct nameidata ndp; int error, flags; - mode_t accessmode; + accmode_t accmode; char *from; if (vfs_filteropt(mp->mnt_optnew, msdosfs_opts)) @@ -363,10 +363,10 @@ msdosfs_mount(struct mount *mp, struct t * If mount by non-root, then verify that user has necessary * permissions on the device. */ - accessmode = VREAD; + accmode = VREAD; if ((mp->mnt_flag & MNT_RDONLY) == 0) - accessmode |= VWRITE; - error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td); + accmode |= VWRITE; + error = VOP_ACCESS(devvp, accmode, td->td_ucred, td); if (error) error = priv_check(td, PRIV_VFS_MOUNT_PERM); if (error) { Modified: head/sys/fs/msdosfs/msdosfs_vnops.c ============================================================================== --- head/sys/fs/msdosfs/msdosfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/msdosfs/msdosfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -249,7 +249,7 @@ static int msdosfs_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; @@ -257,7 +257,8 @@ msdosfs_access(ap) struct vnode *vp = ap->a_vp; struct denode *dep = VTODE(ap->a_vp); struct msdosfsmount *pmp = dep->de_pmp; - mode_t file_mode, mode = ap->a_mode; + mode_t file_mode; + accmode_t accmode = ap->a_accmode; file_mode = (S_IXUSR|S_IXGRP|S_IXOTH) | (S_IRUSR|S_IRGRP|S_IROTH) | ((dep->de_Attributes & ATTR_READONLY) ? 0 : (S_IWUSR|S_IWGRP|S_IWOTH)); @@ -267,7 +268,7 @@ msdosfs_access(ap) * Disallow writing to directories and regular files if the * filesystem is read-only. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VREG: @@ -280,7 +281,7 @@ msdosfs_access(ap) } return (vaccess(vp->v_type, file_mode, pmp->pm_uid, pmp->pm_gid, - ap->a_mode, ap->a_cred, NULL)); + ap->a_accmode, ap->a_cred, NULL)); } static int Modified: head/sys/fs/ntfs/ntfs_vnops.c ============================================================================== --- head/sys/fs/ntfs/ntfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/ntfs/ntfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -386,14 +386,14 @@ int ntfs_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { struct vnode *vp = ap->a_vp; struct ntnode *ip = VTONT(vp); - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; #ifdef QUOTA int error; #endif @@ -405,7 +405,7 @@ ntfs_access(ap) * unless the file is a socket, fifo, or a block or * character device resident on the filesystem. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch ((int)vp->v_type) { case VDIR: case VLNK: @@ -421,7 +421,7 @@ ntfs_access(ap) } return (vaccess(vp->v_type, ip->i_mp->ntm_mode, ip->i_mp->ntm_uid, - ip->i_mp->ntm_gid, ap->a_mode, ap->a_cred, NULL)); + ip->i_mp->ntm_gid, ap->a_accmode, ap->a_cred, NULL)); } /* Modified: head/sys/fs/nullfs/null_vnops.c ============================================================================== --- head/sys/fs/nullfs/null_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/nullfs/null_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -451,14 +451,14 @@ static int null_access(struct vop_access_args *ap) { struct vnode *vp = ap->a_vp; - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; /* * Disallow write attempts on read-only layers; * unless the file is a socket, fifo, or a block or * character device resident on the filesystem. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VLNK: Modified: head/sys/fs/nwfs/nwfs_vnops.c ============================================================================== --- head/sys/fs/nwfs/nwfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/nwfs/nwfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -121,7 +121,7 @@ static int nwfs_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *td; } */ *ap; @@ -131,7 +131,7 @@ nwfs_access(ap) struct nwmount *nmp = VTONWFS(vp); NCPVNDEBUG("\n"); - if ((ap->a_mode & VWRITE) && (vp->v_mount->mnt_flag & MNT_RDONLY)) { + if ((ap->a_accmode & VWRITE) && (vp->v_mount->mnt_flag & MNT_RDONLY)) { switch (vp->v_type) { case VREG: case VDIR: case VLNK: return (EROFS); @@ -142,7 +142,7 @@ nwfs_access(ap) mpmode = vp->v_type == VREG ? nmp->m.file_mode : nmp->m.dir_mode; return (vaccess(vp->v_type, mpmode, nmp->m.uid, - nmp->m.gid, ap->a_mode, ap->a_cred, NULL)); + nmp->m.gid, ap->a_accmode, ap->a_cred, NULL)); } /* * nwfs_open vnode op Modified: head/sys/fs/pseudofs/pseudofs_vnops.c ============================================================================== --- head/sys/fs/pseudofs/pseudofs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/pseudofs/pseudofs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -132,7 +132,7 @@ pfs_access(struct vop_access_args *va) if (error) PFS_RETURN (error); error = vaccess(vn->v_type, vattr.va_mode, vattr.va_uid, - vattr.va_gid, va->a_mode, va->a_cred, NULL); + vattr.va_gid, va->a_accmode, va->a_cred, NULL); PFS_RETURN (error); } Modified: head/sys/fs/smbfs/smbfs_vnops.c ============================================================================== --- head/sys/fs/smbfs/smbfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/smbfs/smbfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -123,18 +123,18 @@ static int smbfs_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { struct vnode *vp = ap->a_vp; - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; mode_t mpmode; struct smbmount *smp = VTOSMBFS(vp); SMBVDEBUG("\n"); - if ((mode & VWRITE) && (vp->v_mount->mnt_flag & MNT_RDONLY)) { + if ((accmode & VWRITE) && (vp->v_mount->mnt_flag & MNT_RDONLY)) { switch (vp->v_type) { case VREG: case VDIR: case VLNK: return EROFS; @@ -144,7 +144,7 @@ smbfs_access(ap) } mpmode = vp->v_type == VREG ? smp->sm_file_mode : smp->sm_dir_mode; return (vaccess(vp->v_type, mpmode, smp->sm_uid, - smp->sm_gid, ap->a_mode, ap->a_cred, NULL)); + smp->sm_gid, ap->a_accmode, ap->a_cred, NULL)); } /* ARGSUSED */ Modified: head/sys/fs/tmpfs/tmpfs_vnops.c ============================================================================== --- head/sys/fs/tmpfs/tmpfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/tmpfs/tmpfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -282,7 +282,7 @@ int tmpfs_access(struct vop_access_args *v) { struct vnode *vp = v->a_vp; - int mode = v->a_mode; + accmode_t accmode = v->a_accmode; struct ucred *cred = v->a_cred; int error; @@ -298,7 +298,7 @@ tmpfs_access(struct vop_access_args *v) case VLNK: /* FALLTHROUGH */ case VREG: - if (mode & VWRITE && vp->v_mount->mnt_flag & MNT_RDONLY) { + if (accmode & VWRITE && vp->v_mount->mnt_flag & MNT_RDONLY) { error = EROFS; goto out; } @@ -318,13 +318,13 @@ tmpfs_access(struct vop_access_args *v) goto out; } - if (mode & VWRITE && node->tn_flags & IMMUTABLE) { + if (accmode & VWRITE && node->tn_flags & IMMUTABLE) { error = EPERM; goto out; } error = vaccess(vp->v_type, node->tn_mode, node->tn_uid, - node->tn_gid, mode, cred, NULL); + node->tn_gid, accmode, cred, NULL); out: MPASS(VOP_ISLOCKED(vp)); Modified: head/sys/fs/udf/udf_vnops.c ============================================================================== --- head/sys/fs/udf/udf_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/udf/udf_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -139,13 +139,14 @@ udf_access(struct vop_access_args *a) { struct vnode *vp; struct udf_node *node; - mode_t a_mode, mode; + accmode_t accmode; + mode_t mode; vp = a->a_vp; node = VTON(vp); - a_mode = a->a_mode; + accmode = a->a_accmode; - if (a_mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VLNK: @@ -160,7 +161,7 @@ udf_access(struct vop_access_args *a) mode = udf_permtomode(node); return (vaccess(vp->v_type, mode, node->fentry->uid, node->fentry->gid, - a_mode, a->a_cred, NULL)); + accmode, a->a_cred, NULL)); } static int Modified: head/sys/fs/unionfs/union_vnops.c ============================================================================== --- head/sys/fs/unionfs/union_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/fs/unionfs/union_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -583,7 +583,7 @@ unionfs_close_abort: * Check the access mode toward shadow file/dir. */ static int -unionfs_check_corrected_access(u_short mode, +unionfs_check_corrected_access(accmode_t accmode, struct vattr *va, struct ucred *cred) { @@ -601,11 +601,11 @@ unionfs_check_corrected_access(u_short m /* check owner */ if (cred->cr_uid == uid) { - if (mode & VEXEC) + if (accmode & VEXEC) mask |= S_IXUSR; - if (mode & VREAD) + if (accmode & VREAD) mask |= S_IRUSR; - if (mode & VWRITE) + if (accmode & VWRITE) mask |= S_IWUSR; return ((vmode & mask) == mask ? 0 : EACCES); } @@ -615,22 +615,22 @@ unionfs_check_corrected_access(u_short m gp = cred->cr_groups; for (; count < cred->cr_ngroups; count++, gp++) { if (gid == *gp) { - if (mode & VEXEC) + if (accmode & VEXEC) mask |= S_IXGRP; - if (mode & VREAD) + if (accmode & VREAD) mask |= S_IRGRP; - if (mode & VWRITE) + if (accmode & VWRITE) mask |= S_IWGRP; return ((vmode & mask) == mask ? 0 : EACCES); } } /* check other */ - if (mode & VEXEC) + if (accmode & VEXEC) mask |= S_IXOTH; - if (mode & VREAD) + if (accmode & VREAD) mask |= S_IROTH; - if (mode & VWRITE) + if (accmode & VWRITE) mask |= S_IWOTH; return ((vmode & mask) == mask ? 0 : EACCES); @@ -645,7 +645,7 @@ unionfs_access(struct vop_access_args *a struct vnode *lvp; struct thread *td; struct vattr va; - int mode; + accmode_t accmode; int error; UNIONFS_INTERNAL_DEBUG("unionfs_access: enter\n"); @@ -655,10 +655,10 @@ unionfs_access(struct vop_access_args *a uvp = unp->un_uppervp; lvp = unp->un_lowervp; td = ap->a_td; - mode = ap->a_mode; + accmode = ap->a_accmode; error = EACCES; - if ((mode & VWRITE) && + if ((accmode & VWRITE) && (ap->a_vp->v_mount->mnt_flag & MNT_RDONLY)) { switch (ap->a_vp->v_type) { case VREG: @@ -671,7 +671,7 @@ unionfs_access(struct vop_access_args *a } if (uvp != NULLVP) { - error = VOP_ACCESS(uvp, mode, ap->a_cred, td); + error = VOP_ACCESS(uvp, accmode, ap->a_cred, td); UNIONFS_INTERNAL_DEBUG("unionfs_access: leave (%d)\n", error); @@ -679,7 +679,7 @@ unionfs_access(struct vop_access_args *a } if (lvp != NULLVP) { - if (mode & VWRITE) { + if (accmode & VWRITE) { if (ump->um_uppervp->v_mount->mnt_flag & MNT_RDONLY) { switch (ap->a_vp->v_type) { case VREG: @@ -698,15 +698,15 @@ unionfs_access(struct vop_access_args *a return (error); error = unionfs_check_corrected_access( - mode, &va, ap->a_cred); + accmode, &va, ap->a_cred); if (error != 0) return (error); } } - mode &= ~VWRITE; - mode |= VREAD; /* will copy to upper */ + accmode &= ~VWRITE; + accmode |= VREAD; /* will copy to upper */ } - error = VOP_ACCESS(lvp, mode, ap->a_cred, td); + error = VOP_ACCESS(lvp, accmode, ap->a_cred, td); } UNIONFS_INTERNAL_DEBUG("unionfs_access: leave (%d)\n", error); Modified: head/sys/gnu/fs/ext2fs/ext2_vfsops.c ============================================================================== --- head/sys/gnu/fs/ext2fs/ext2_vfsops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/gnu/fs/ext2fs/ext2_vfsops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -137,7 +137,7 @@ ext2_mount(mp, td) struct ext2_sb_info *fs; char *path, *fspec; int error, flags, len; - mode_t accessmode; + accmode_t accmode; struct nameidata nd, *ndp = &nd; opts = mp->mnt_optnew; @@ -265,10 +265,10 @@ ext2_mount(mp, td) * * XXXRW: VOP_ACCESS() enough? */ - accessmode = VREAD; + accmode = VREAD; if ((mp->mnt_flag & MNT_RDONLY) == 0) - accessmode |= VWRITE; - error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td); + accmode |= VWRITE; + error = VOP_ACCESS(devvp, accmode, td->td_ucred, td); if (error) error = priv_check(td, PRIV_VFS_MOUNT_PERM); if (error) { Modified: head/sys/gnu/fs/ext2fs/ext2_vnops.c ============================================================================== --- head/sys/gnu/fs/ext2fs/ext2_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/gnu/fs/ext2fs/ext2_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -283,14 +283,14 @@ static int ext2_access(ap) struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap; { struct vnode *vp = ap->a_vp; struct inode *ip = VTOI(vp); - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; int error; if (vp->v_type == VBLK || vp->v_type == VCHR) @@ -301,7 +301,7 @@ ext2_access(ap) * unless the file is a socket, fifo, or a block or * character device resident on the file system. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VLNK: @@ -315,11 +315,11 @@ ext2_access(ap) } /* If immutable bit set, nobody gets to write it. */ - if ((mode & VWRITE) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) + if ((accmode & VWRITE) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) return (EPERM); error = vaccess(vp->v_type, ip->i_mode, ip->i_uid, ip->i_gid, - ap->a_mode, ap->a_cred, NULL); + ap->a_accmode, ap->a_cred, NULL); return (error); } Modified: head/sys/gnu/fs/reiserfs/reiserfs_vfsops.c ============================================================================== --- head/sys/gnu/fs/reiserfs/reiserfs_vfsops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/gnu/fs/reiserfs/reiserfs_vfsops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -74,7 +74,7 @@ reiserfs_mount(struct mount *mp, struct { size_t size; int error, len; - mode_t accessmode; + accmode_t accmode; char *path, *fspec; struct vnode *devvp; struct vfsoptlist *opts; @@ -124,10 +124,10 @@ reiserfs_mount(struct mount *mp, struct /* If mount by non-root, then verify that user has necessary * permissions on the device. */ - accessmode = VREAD; + accmode = VREAD; if ((mp->mnt_flag & MNT_RDONLY) == 0) - accessmode |= VWRITE; - error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td); + accmode |= VWRITE; + error = VOP_ACCESS(devvp, accmode, td->td_ucred, td); if (error) error = priv_check(td, PRIV_VFS_MOUNT_PERM); if (error) { Modified: head/sys/gnu/fs/reiserfs/reiserfs_vnops.c ============================================================================== --- head/sys/gnu/fs/reiserfs/reiserfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/gnu/fs/reiserfs/reiserfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -57,14 +57,14 @@ reiserfs_access(struct vop_access_args * int error; struct vnode *vp = ap->a_vp; struct reiserfs_node *ip = VTOI(vp); - mode_t mode = ap->a_mode; + accmode_t accmode = ap->a_accmode; /* * Disallow write attempts on read-only file systems; unless the file * is a socket, fifo, or a block or character device resident on the * file system. */ - if (mode & VWRITE) { + if (accmode & VWRITE) { switch (vp->v_type) { case VDIR: case VLNK: @@ -81,13 +81,13 @@ reiserfs_access(struct vop_access_args * } /* If immutable bit set, nobody gets to write it. */ - if ((mode & VWRITE) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) { + if ((accmode & VWRITE) && (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT))) { reiserfs_log(LOG_DEBUG, "no write access (immutable)\n"); return (EPERM); } error = vaccess(vp->v_type, ip->i_mode, ip->i_uid, ip->i_gid, - ap->a_mode, ap->a_cred, NULL); + ap->a_accmode, ap->a_cred, NULL); return (error); } Modified: head/sys/gnu/fs/xfs/FreeBSD/xfs_super.c ============================================================================== --- head/sys/gnu/fs/xfs/FreeBSD/xfs_super.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/gnu/fs/xfs/FreeBSD/xfs_super.c Tue Oct 28 13:44:11 2008 (r184413) @@ -133,7 +133,7 @@ xfs_blkdev_get( struct vnode *devvp; struct g_consumer *cp; struct g_provider *pp; - mode_t accessmode; + accmode_t accmode; td = curthread; @@ -151,10 +151,10 @@ xfs_blkdev_get( vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY); ronly = ((XFS_MTOVFS(mp)->vfs_flag & VFS_RDONLY) != 0); - accessmode = VREAD; + accmode = VREAD; if (!ronly) - accessmode |= VWRITE; - error = VOP_ACCESS(devvp, accessmode, td->td_ucred, td); + accmode |= VWRITE; + error = VOP_ACCESS(devvp, accmode, td->td_ucred, td); if (error) error = priv_check(td, PRIV_VFS_MOUNT_PERM); if (error) { Modified: head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c ============================================================================== --- head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/gnu/fs/xfs/FreeBSD/xfs_vnops.c Tue Oct 28 13:44:11 2008 (r184413) @@ -180,14 +180,14 @@ static int _xfs_access( struct vop_access_args /* { struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; } */ *ap) { int error; - XVOP_ACCESS(VPTOXFSVP(ap->a_vp), ap->a_mode, ap->a_cred, error); + XVOP_ACCESS(VPTOXFSVP(ap->a_vp), ap->a_accmode, ap->a_cred, error); return (error); } Modified: head/sys/kern/subr_acl_posix1e.c ============================================================================== --- head/sys/kern/subr_acl_posix1e.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/kern/subr_acl_posix1e.c Tue Oct 28 13:44:11 2008 (r184413) @@ -53,12 +53,12 @@ __FBSDID("$FreeBSD$"); */ int vaccess_acl_posix1e(enum vtype type, uid_t file_uid, gid_t file_gid, - struct acl *acl, mode_t acc_mode, struct ucred *cred, int *privused) + struct acl *acl, accmode_t acc_mode, struct ucred *cred, int *privused) { struct acl_entry *acl_other, *acl_mask; - mode_t dac_granted; - mode_t priv_granted; - mode_t acl_mask_granted; + accmode_t dac_granted; + accmode_t priv_granted; + accmode_t acl_mask_granted; int group_matched, i; /* Modified: head/sys/kern/uipc_mqueue.c ============================================================================== --- head/sys/kern/uipc_mqueue.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/kern/uipc_mqueue.c Tue Oct 28 13:44:11 2008 (r184413) @@ -1120,7 +1120,7 @@ mqfs_close(struct vop_close_args *ap) struct vop_access_args { struct vop_generic_args a_gen; struct vnode *a_vp; - int a_mode; + accmode_t a_accmode; struct ucred *a_cred; struct thread *a_td; }; @@ -1140,7 +1140,7 @@ mqfs_access(struct vop_access_args *ap) if (error) return (error); error = vaccess(vp->v_type, vattr.va_mode, vattr.va_uid, - vattr.va_gid, ap->a_mode, ap->a_cred, NULL); + vattr.va_gid, ap->a_accmode, ap->a_cred, NULL); return (error); } @@ -2003,14 +2003,14 @@ kmq_open(struct thread *td, struct kmq_o if ((flags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL)) { error = EEXIST; } else { - int acc_mode = 0; + accmode_t accmode = 0; if (flags & FREAD) - acc_mode |= VREAD; + accmode |= VREAD; if (flags & FWRITE) - acc_mode |= VWRITE; + accmode |= VWRITE; error = vaccess(VREG, pn->mn_mode, pn->mn_uid, - pn->mn_gid, acc_mode, td->td_ucred, NULL); + pn->mn_gid, accmode, td->td_ucred, NULL); } } Modified: head/sys/kern/uipc_shm.c ============================================================================== --- head/sys/kern/uipc_shm.c Tue Oct 28 12:49:07 2008 (r184412) +++ head/sys/kern/uipc_shm.c Tue Oct 28 13:44:11 2008 (r184413) @@ -367,15 +367,15 @@ shm_drop(struct shmfd *shmfd) *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200810281344.m9SDiBX3095365>