Lines Matching defs:p

101 sys_mount(struct proc *p, void *v, register_t *retval)
119 if ((error = suser(p)))
132 NDINIT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_SYSSPACE, fspath, p);
181 if ((error = vinvalbuf(vp, V_SAVE, p->p_ucred, p, 0, INFSLP)) != 0) {
218 mp->mnt_stat.f_owner = p->p_ucred->cr_uid;
250 error = VFS_MOUNT(mp, fspath, args, &nd, p);
291 (void) VFS_STATFS(mp, &mp->mnt_stat, p);
292 if ((error = VFS_START(mp, 0, p)) != 0)
358 sys_unmount(struct proc *p, void *v, register_t *retval)
369 if ((error = suser(p)) != 0)
373 SCARG(uap, path), p);
399 return (dounmount(mp, SCARG(uap, flags) & MNT_FORCE, p));
406 dounmount(struct mount *mp, int flags, struct proc *p)
455 error = dounmount_leaf(mp, flags, p);
470 dounmount_leaf(struct mount *mp, int flags, struct proc *p)
494 (error = VFS_SYNC(mp, MNT_WAIT, 0, p->p_ucred, p)) == 0) ||
496 error = VFS_UNMOUNT(mp, flags, p);
524 sys_sync(struct proc *p, void *v, register_t *retval)
536 VFS_SYNC(mp, MNT_NOWAIT, 0, p->p_ucred, p);
550 sys_quotactl(struct proc *p, void *v, register_t *retval)
562 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p);
568 SCARG(uap, arg), p));
572 copyout_statfs(struct statfs *sp, void *uaddr, struct proc *p)
581 if (suser(p)) {
603 sys_statfs(struct proc *p, void *v, register_t *retval)
615 SCARG(uap, path), p);
623 if ((error = VFS_STATFS(mp, sp, p)) != 0)
627 return (copyout_statfs(sp, SCARG(uap, buf), p));
634 sys_fstatfs(struct proc *p, void *v, register_t *retval)
645 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
649 FRELE(fp, p);
653 error = VFS_STATFS(mp, sp, p);
654 FRELE(fp, p);
659 return (copyout_statfs(sp, SCARG(uap, buf), p));
666 sys_getfsstat(struct proc *p, void *v, register_t *retval)
694 (error = VFS_STATFS(mp, sp, p))) {
700 error = (copyout_statfs(sp, sfsp, p));
723 sys_fchdir(struct proc *p, void *v, register_t *retval)
728 struct filedesc *fdp = p->p_fd;
738 FRELE(fp, p);
742 FRELE(fp, p);
744 error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p);
771 sys_chdir(struct proc *p, void *v, register_t *retval)
776 struct filedesc *fdp = p->p_fd;
782 SCARG(uap, path), p);
785 if ((error = change_dir(&nd, p)) != 0)
797 sys_chroot(struct proc *p, void *v, register_t *retval)
802 struct filedesc *fdp = p->p_fd;
807 if ((error = suser(p)) != 0)
810 SCARG(uap, path), p);
811 if ((error = change_dir(&nd, p)) != 0)
826 atomic_setbits_int(&p->p_p->ps_flags, PS_CHROOT);
834 change_dir(struct nameidata *ndp, struct proc *p)
845 error = VOP_ACCESS(vp, VEXEC, p->p_ucred, p);
854 sys___realpath(struct proc *p, void *v, register_t *retval)
897 error = vfs_getcwd_common(p->p_fd->fd_cdir, NULL, &bp, cwdbuf,
898 cwdlen/2, GETCWD_CHECK_ACCESS, p);
915 pathname, p);
933 if (KTRPOINT(p, KTR_NAMEI))
934 ktrnamei(p, nd.ni_cnd.cn_rpbuf);
944 sys_unveil(struct proc *p, void *v, register_t *retval)
950 struct process *pr = p->p_p;
975 if (KTRPOINT(p, KTR_STRUCT))
976 ktrstruct(p, "unveil", permissions, strlen(permissions));
991 UIO_SYSSPACE, pathname, p);
994 UIO_SYSSPACE, pathname, p);
1005 (VOP_ACCESS(nd.ni_vp, VREAD, p->p_ucred, p) == 0 ||
1006 VOP_ACCESS(nd.ni_vp, VWRITE, p->p_ucred, p) == 0 ||
1007 VOP_ACCESS(nd.ni_vp, VEXEC, p->p_ucred, p) == 0)) ||
1009 (VOP_ACCESS(nd.ni_dvp, VREAD, p->p_ucred, p) == 0 ||
1010 VOP_ACCESS(nd.ni_dvp, VWRITE, p->p_ucred, p) == 0 ||
1011 VOP_ACCESS(nd.ni_dvp, VEXEC, p->p_ucred, p) == 0)));
1020 error = unveil_add(p, &nd, permissions);
1042 sys_open(struct proc *p, void *v, register_t *retval)
1050 return (doopenat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, flags),
1055 sys_openat(struct proc *p, void *v, register_t *retval)
1064 return (doopenat(p, SCARG(uap, fd), SCARG(uap, path),
1069 doopenat(struct proc *p, int fd, const char *path, int oflags, mode_t mode,
1072 struct filedesc *fdp = p->p_fd;
1084 error = pledge_flock(p);
1092 if ((error = falloc(p, &fp, &indx)) != 0) {
1113 if ((p->p_p->ps_flags & PS_PLEDGE))
1115 NDINITAT(&nd, 0, 0, UIO_USERSPACE, fd, path, p);
1118 p->p_dupfd = -1; /* XXX check for fdopen */
1127 p->p_dupfd >= 0 && /* XXX from fdopen */
1129 dupfdopen(p, indx, flags)) == 0) {
1138 p->p_dupfd = 0;
1176 error = VOP_SETATTR(vp, &vattr, fp->f_cred, p);
1192 FRELE(fp, p);
1197 closef(fp, p);
1205 sys___tmpfd(struct proc *p, void *v, register_t *retval)
1210 struct filedesc *fdp = p->p_fd;
1227 if ((error = falloc(p, &fp, &indx)) != 0) {
1242 NDINITAT(&nd, 0, KERNELPATH, UIO_SYSSPACE, AT_FDCWD, path, p);
1249 closef(fp, p);
1262 FRELE(fp, p);
1270 AT_FDCWD, path, p);
1291 sys_getfh(struct proc *p, void *v, register_t *retval)
1305 error = suser(p);
1309 SCARG(uap, fname), p);
1331 sys_fhopen(struct proc *p, void *v, register_t *retval)
1337 struct filedesc *fdp = p->p_fd;
1341 struct ucred *cred = p->p_ucred;
1351 if ((error = suser(p)))
1363 if ((error = falloc(p, &fp, &indx)) != 0) {
1394 if ((error = VOP_ACCESS(vp, VREAD, cred, p)) != 0)
1402 if ((error = VOP_ACCESS(vp, VWRITE, cred, p)) != 0 ||
1409 if ((error = VOP_SETATTR(vp, &va, cred, p)) != 0)
1412 if ((error = VOP_OPEN(vp, flags, cred, p)) != 0)
1448 FRELE(fp, p);
1456 closef(fp, p);
1464 sys_fhstat(struct proc *p, void *v, register_t *retval)
1479 if ((error = suser(p)))
1489 error = vn_stat(vp, &sb, p);
1498 sys_fhstatfs(struct proc *p, void *v, register_t *retval)
1513 if ((error = suser(p)))
1526 if ((error = VFS_STATFS(mp, sp, p)) != 0)
1536 sys_mknod(struct proc *p, void *v, register_t *retval)
1544 return (domknodat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, mode),
1549 sys_mknodat(struct proc *p, void *v, register_t *retval)
1558 return (domknodat(p, SCARG(uap, fd), SCARG(uap, path),
1563 domknodat(struct proc *p, int fd, const char *path, mode_t mode, dev_t dev)
1572 NDINITAT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, fd, path, p);
1579 if (!vnoperm(nd.ni_dvp) && (error = suser(p)) != 0)
1581 if (p->p_fd->fd_rdir) {
1590 vattr.va_mode = (mode & ALLPERMS) &~ p->p_fd->fd_cmask;
1591 if ((p->p_p->ps_flags & PS_PLEDGE))
1641 sys_mkfifo(struct proc *p, void *v, register_t *retval)
1648 return (domknodat(p, AT_FDCWD, SCARG(uap, path),
1653 sys_mkfifoat(struct proc *p, void *v, register_t *retval)
1661 return (domknodat(p, SCARG(uap, fd), SCARG(uap, path),
1669 sys_link(struct proc *p, void *v, register_t *retval)
1676 return (dolinkat(p, AT_FDCWD, SCARG(uap, path), AT_FDCWD,
1681 sys_linkat(struct proc *p, void *v, register_t *retval)
1691 return (dolinkat(p, SCARG(uap, fd1), SCARG(uap, path1),
1696 dolinkat(struct proc *p, int fd1, const char *path1, int fd2,
1707 NDINITAT(&nd, LOOKUP, follow, UIO_USERSPACE, fd1, path1, p);
1719 NDINITAT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, fd2, path2, p);
1753 sys_symlink(struct proc *p, void *v, register_t *retval)
1760 return (dosymlinkat(p, SCARG(uap, path), AT_FDCWD, SCARG(uap, link)));
1764 sys_symlinkat(struct proc *p, void *v, register_t *retval)
1772 return (dosymlinkat(p, SCARG(uap, path), SCARG(uap, fd),
1777 dosymlinkat(struct proc *p, const char *upath, int fd, const char *link)
1788 NDINITAT(&nd, CREATE, LOCKPARENT, UIO_USERSPACE, fd, link, p);
1804 vattr.va_mode = ACCESSPERMS &~ p->p_fd->fd_cmask;
1815 sys_unlink(struct proc *p, void *v, register_t *retval)
1821 return (dounlinkat(p, AT_FDCWD, SCARG(uap, path), 0));
1825 sys_unlinkat(struct proc *p, void *v, register_t *retval)
1833 return (dounlinkat(p, SCARG(uap, fd), SCARG(uap, path),
1838 dounlinkat(struct proc *p, int fd, const char *path, int flag)
1848 fd, path, p);
1904 sys_lseek(struct proc *p, void *v, register_t *retval)
1911 struct filedesc *fdp = p->p_fd;
1924 error = (*fp->f_ops->fo_seek)(fp, &offset, SCARG(uap, whence), p);
1934 FRELE(fp, p);
1942 sys_access(struct proc *p, void *v, register_t *retval)
1949 return (dofaccessat(p, AT_FDCWD, SCARG(uap, path),
1954 sys_faccessat(struct proc *p, void *v, register_t *retval)
1963 return (dofaccessat(p, SCARG(uap, fd), SCARG(uap, path),
1968 dofaccessat(struct proc *p, int fd, const char *path, int amode, int flag)
1981 oldcred = p->p_ucred;
1990 p->p_ucred = newcred = crdup(oldcred);
1995 NDINITAT(&nd, LOOKUP, FOLLOW | LOCKLEAF, UIO_USERSPACE, fd, path, p);
2012 error = VOP_ACCESS(vp, vflags, p->p_ucred, p);
2019 p->p_ucred = oldcred;
2029 sys_stat(struct proc *p, void *v, register_t *retval)
2036 return (dofstatat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, ub), 0));
2040 sys_fstatat(struct proc *p, void *v, register_t *retval)
2049 return (dofstatat(p, SCARG(uap, fd), SCARG(uap, path),
2054 dofstatat(struct proc *p, int fd, const char *path, struct stat *buf, int flag)
2065 NDINITAT(&nd, LOOKUP, follow | LOCKLEAF, UIO_USERSPACE, fd, path, p);
2073 error = vn_stat(nd.ni_vp, &sb, p);
2079 if (suser(p))
2083 if (error == 0 && KTRPOINT(p, KTR_STRUCT))
2084 ktrstat(p, &sb);
2093 sys_lstat(struct proc *p, void *v, register_t *retval)
2100 return (dofstatat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, ub),
2108 sys_pathconf(struct proc *p, void *v, register_t *retval)
2115 return dopathconfat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, name),
2120 sys_pathconfat(struct proc *p, void *v, register_t *retval)
2129 return dopathconfat(p, SCARG(uap, fd), SCARG(uap, path),
2134 dopathconfat(struct proc *p, int fd, const char *path, int name, int flag,
2144 NDINITAT(&nd, LOOKUP, follow | LOCKLEAF, UIO_USERSPACE, fd, path, p);
2158 sys_readlink(struct proc *p, void *v, register_t *retval)
2166 return (doreadlinkat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, buf),
2171 sys_readlinkat(struct proc *p, void *v, register_t *retval)
2180 return (doreadlinkat(p, SCARG(uap, fd), SCARG(uap, path),
2185 doreadlinkat(struct proc *p, int fd, const char *path, char *buf,
2194 NDINITAT(&nd, LOOKUP, NOFOLLOW | LOCKLEAF, UIO_USERSPACE, fd, path, p);
2210 auio.uio_procp = p;
2212 error = VOP_READLINK(vp, &auio, p->p_ucred);
2223 sys_chflags(struct proc *p, void *v, register_t *retval)
2230 return (dochflagsat(p, AT_FDCWD, SCARG(uap, path),
2235 sys_chflagsat(struct proc *p, void *v, register_t *retval)
2244 return (dochflagsat(p, SCARG(uap, fd), SCARG(uap, path),
2249 dochflagsat(struct proc *p, int fd, const char *path, u_int flags, int atflags)
2258 NDINITAT(&nd, LOOKUP, follow, UIO_USERSPACE, fd, path, p);
2263 return (dovchflags(p, nd.ni_vp, flags));
2270 sys_fchflags(struct proc *p, void *v, register_t *retval)
2280 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
2284 FRELE(fp, p);
2285 return (dovchflags(p, vp, SCARG(uap, flags)));
2289 dovchflags(struct proc *p, struct vnode *vp, u_int flags)
2300 if (suser(p)) {
2301 if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p))
2311 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2322 sys_chmod(struct proc *p, void *v, register_t *retval)
2329 return (dofchmodat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, mode), 0));
2333 sys_fchmodat(struct proc *p, void *v, register_t *retval)
2342 return (dofchmodat(p, SCARG(uap, fd), SCARG(uap, path),
2347 dofchmodat(struct proc *p, int fd, const char *path, mode_t mode, int flag)
2356 if ((p->p_p->ps_flags & PS_PLEDGE))
2362 NDINITAT(&nd, LOOKUP, follow, UIO_USERSPACE, fd, path, p);
2374 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2384 sys_fchmod(struct proc *p, void *v, register_t *retval)
2398 if ((p->p_p->ps_flags & PS_PLEDGE))
2401 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
2410 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2413 FRELE(fp, p);
2421 sys_chown(struct proc *p, void *v, register_t *retval)
2429 return (dofchownat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, uid),
2434 sys_fchownat(struct proc *p, void *v, register_t *retval)
2444 return (dofchownat(p, SCARG(uap, fd), SCARG(uap, path),
2449 dofchownat(struct proc *p, int fd, const char *path, uid_t uid, gid_t gid,
2462 NDINITAT(&nd, LOOKUP, follow, UIO_USERSPACE, fd, path, p);
2472 if ((error = pledge_chown(p, uid, gid)))
2476 (suser(p) || atomic_load_int(&suid_clear))) {
2477 error = VOP_GETATTR(vp, &vattr, p->p_ucred, p);
2489 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2500 sys_lchown(struct proc *p, void *v, register_t *retval)
2515 NDINIT(&nd, LOOKUP, NOFOLLOW, UIO_USERSPACE, SCARG(uap, path), p);
2525 if ((error = pledge_chown(p, uid, gid)))
2529 (suser(p) || atomic_load_int(&suid_clear))) {
2530 error = VOP_GETATTR(vp, &vattr, p->p_ucred, p);
2542 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2553 sys_fchown(struct proc *p, void *v, register_t *retval)
2568 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
2575 if ((error = pledge_chown(p, uid, gid)))
2579 (suser(p) || atomic_load_int(&suid_clear))) {
2580 error = VOP_GETATTR(vp, &vattr, p->p_ucred, p);
2592 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2596 FRELE(fp, p);
2604 sys_utimes(struct proc *p, void *v, register_t *retval)
2622 if (KTRPOINT(p, KTR_STRUCT))
2623 ktrabstimeval(p, &tv);
2632 return (doutimensat(p, AT_FDCWD, SCARG(uap, path), ts, 0));
2636 sys_utimensat(struct proc *p, void *v, register_t *retval)
2660 if (KTRPOINT(p, KTR_STRUCT))
2661 ktrabstimespec(p, &ts[i]);
2669 return (doutimensat(p, SCARG(uap, fd), SCARG(uap, path), ts,
2674 doutimensat(struct proc *p, int fd, const char *path,
2685 NDINITAT(&nd, LOOKUP, follow, UIO_USERSPACE, fd, path, p);
2692 return (dovutimens(p, vp, ts));
2696 dovutimens(struct proc *p, struct vnode *vp, struct timespec ts[2])
2705 KTRPOINT(p, KTR_STRUCT)) {
2706 ktrabstimespec(p, &ts[0]);
2707 ktrabstimespec(p, &ts[1]);
2736 error = VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2745 sys_futimes(struct proc *p, void *v, register_t *retval)
2762 if (KTRPOINT(p, KTR_STRUCT)) {
2763 ktrabstimeval(p, &tv[0]);
2764 ktrabstimeval(p, &tv[1]);
2774 return (dofutimens(p, SCARG(uap, fd), ts));
2778 sys_futimens(struct proc *p, void *v, register_t *retval)
2799 if (KTRPOINT(p, KTR_STRUCT))
2800 ktrabstimespec(p, &ts[i]);
2808 return (dofutimens(p, SCARG(uap, fd), ts));
2812 dofutimens(struct proc *p, int fd, struct timespec ts[2])
2818 if ((error = getvnode(p, fd, &fp)) != 0)
2822 FRELE(fp, p);
2824 return (dovutimens(p, vp, ts));
2831 dotruncate(struct proc *p, struct vnode *vp, off_t len)
2842 if (vp->v_type == VREG && len > lim_cur_proc(p, RLIMIT_FSIZE)) {
2843 if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) != 0)
2847 psignal(p, SIGXFSZ);
2853 return VOP_SETATTR(vp, &vattr, p->p_ucred, p);
2860 sys_truncate(struct proc *p, void *v, register_t *retval)
2870 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p);
2877 if ((error = VOP_ACCESS(vp, VWRITE, p->p_ucred, p)) == 0)
2878 error = dotruncate(p, vp, SCARG(uap, length));
2887 sys_ftruncate(struct proc *p, void *v, register_t *retval)
2897 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
2905 error = dotruncate(p, vp, SCARG(uap, length));
2908 FRELE(fp, p);
2916 sys_fsync(struct proc *p, void *v, register_t *retval)
2925 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
2929 error = VOP_FSYNC(vp, fp->f_cred, MNT_WAIT, p);
2932 FRELE(fp, p);
2941 sys_rename(struct proc *p, void *v, register_t *retval)
2948 return (dorenameat(p, AT_FDCWD, SCARG(uap, from), AT_FDCWD,
2953 sys_renameat(struct proc *p, void *v, register_t *retval)
2962 return (dorenameat(p, SCARG(uap, fromfd), SCARG(uap, from),
2967 dorenameat(struct proc *p, int fromfd, const char *from, int tofd,
2976 fromfd, from, p);
2990 NDINITAT(&tond, RENAME, flags, UIO_USERSPACE, tofd, to, p);
3052 sys_mkdir(struct proc *p, void *v, register_t *retval)
3059 return (domkdirat(p, AT_FDCWD, SCARG(uap, path), SCARG(uap, mode)));
3063 sys_mkdirat(struct proc *p, void *v, register_t *retval)
3071 return (domkdirat(p, SCARG(uap, fd), SCARG(uap, path),
3076 domkdirat(struct proc *p, int fd, const char *path, mode_t mode)
3084 fd, path, p);
3101 vattr.va_mode = (mode & ACCESSPERMS) &~ p->p_fd->fd_cmask;
3112 sys_rmdir(struct proc *p, void *v, register_t *retval)
3118 return (dounlinkat(p, AT_FDCWD, SCARG(uap, path), AT_REMOVEDIR));
3125 sys_getdents(struct proc *p, void *v, register_t *retval)
3143 if ((error = getvnode(p, SCARG(uap, fd), &fp)) != 0)
3169 auio.uio_procp = p;
3181 FRELE(fp, p);
3189 sys_umask(struct proc *p, void *v, register_t *retval)
3194 struct filedesc *fdp = p->p_fd;
3208 sys_revoke(struct proc *p, void *v, register_t *retval)
3218 NDINIT(&nd, LOOKUP, FOLLOW, UIO_USERSPACE, SCARG(uap, path), p);
3229 if ((error = VOP_GETATTR(vp, &vattr, p->p_ucred, p)) != 0)
3231 if (p->p_ucred->cr_uid != vattr.va_uid &&
3232 (error = suser(p)))
3247 getvnode(struct proc *p, int fd, struct file **fpp)
3252 if ((fp = fd_getfile(p->p_fd, fd)) == NULL)
3256 FRELE(fp, p);
3262 FRELE(fp, p);
3275 sys_pread(struct proc *p, void *v, register_t *retval)
3296 return (dofilereadv(p, SCARG(uap, fd), &auio, FO_POSITION, retval));
3303 sys_preadv(struct proc *p, void *v, register_t *retval)
3325 error = dofilereadv(p, SCARG(uap, fd), &auio, FO_POSITION, retval);
3335 sys_pwrite(struct proc *p, void *v, register_t *retval)
3356 return (dofilewritev(p, SCARG(uap, fd), &auio, FO_POSITION, retval));
3363 sys_pwritev(struct proc *p, void *v, register_t *retval)
3385 error = dofilewritev(p, SCARG(uap, fd), &auio, FO_POSITION, retval);