Lines Matching refs:error
197 int error; in sys_quotactl() local
205 if ((error = namei(&nd)) != 0) in sys_quotactl()
206 return (error); in sys_quotactl()
211 error = vfs_busy(mp, 0); in sys_quotactl()
212 if (error != 0) { in sys_quotactl()
214 return (error); in sys_quotactl()
216 error = VFS_QUOTACTL(mp, uap->cmd, uap->uid, uap->arg); in sys_quotactl()
233 return (error); in sys_quotactl()
280 int error; in kern_do_statfs() local
284 error = vfs_busy(mp, 0); in kern_do_statfs()
286 if (error != 0) in kern_do_statfs()
287 return (error); in kern_do_statfs()
289 error = mac_mount_check_stat(td->td_ucred, mp); in kern_do_statfs()
290 if (error != 0) in kern_do_statfs()
293 error = VFS_STATFS(mp, buf); in kern_do_statfs()
294 if (error != 0) in kern_do_statfs()
302 return (error); in kern_do_statfs()
318 int error; in sys_statfs() local
321 error = kern_statfs(td, uap->path, UIO_USERSPACE, sfp); in sys_statfs()
322 if (error == 0) in sys_statfs()
323 error = copyout(sfp, uap->buf, sizeof(struct statfs)); in sys_statfs()
325 return (error); in sys_statfs()
334 int error; in kern_statfs() local
337 error = namei(&nd); in kern_statfs()
338 if (error != 0) in kern_statfs()
339 return (error); in kern_statfs()
359 int error; in sys_fstatfs() local
362 error = kern_fstatfs(td, uap->fd, sfp); in sys_fstatfs()
363 if (error == 0) in sys_fstatfs()
364 error = copyout(sfp, uap->buf, sizeof(struct statfs)); in sys_fstatfs()
366 return (error); in sys_fstatfs()
375 int error; in kern_fstatfs() local
378 error = getvnode_path(td, fd, &cap_fstatfs_rights, &fp); in kern_fstatfs()
379 if (error != 0) in kern_fstatfs()
380 return (error); in kern_fstatfs()
408 int error; in sys_getfsstat() local
412 error = kern_getfsstat(td, &uap->buf, uap->bufsize, &count, in sys_getfsstat()
414 if (error == 0) in sys_getfsstat()
416 return (error); in sys_getfsstat()
431 int error; in kern_getfsstat() local
539 error = VFS_STATFS(mp, sp); in kern_getfsstat()
540 if (error != 0) { in kern_getfsstat()
560 error = copyout(sp, sfsp, sizeof(*sp)); in kern_getfsstat()
562 if (error != 0) { in kern_getfsstat()
564 return (error); in kern_getfsstat()
602 int error; in freebsd4_statfs() local
605 error = kern_statfs(td, uap->path, UIO_USERSPACE, sfp); in freebsd4_statfs()
606 if (error == 0) { in freebsd4_statfs()
608 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd4_statfs()
611 return (error); in freebsd4_statfs()
628 int error; in freebsd4_fstatfs() local
631 error = kern_fstatfs(td, uap->fd, sfp); in freebsd4_fstatfs()
632 if (error == 0) { in freebsd4_fstatfs()
634 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd4_fstatfs()
637 return (error); in freebsd4_fstatfs()
656 int error; in freebsd4_getfsstat() local
664 error = kern_getfsstat(td, &buf, size, &count, UIO_SYSSPACE, in freebsd4_getfsstat()
666 if (error == 0) in freebsd4_getfsstat()
670 while (count != 0 && error == 0) { in freebsd4_getfsstat()
672 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd4_getfsstat()
679 return (error); in freebsd4_getfsstat()
697 int error; in freebsd4_fhstatfs() local
699 error = copyin(uap->u_fhp, &fh, sizeof(fhandle_t)); in freebsd4_fhstatfs()
700 if (error != 0) in freebsd4_fhstatfs()
701 return (error); in freebsd4_fhstatfs()
703 error = kern_fhstatfs(td, fh, sfp); in freebsd4_fhstatfs()
704 if (error == 0) { in freebsd4_fhstatfs()
706 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd4_fhstatfs()
709 return (error); in freebsd4_fhstatfs()
756 int error; in freebsd11_statfs() local
759 error = kern_statfs(td, uap->path, UIO_USERSPACE, sfp); in freebsd11_statfs()
760 if (error == 0) { in freebsd11_statfs()
762 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd11_statfs()
765 return (error); in freebsd11_statfs()
776 int error; in freebsd11_fstatfs() local
779 error = kern_fstatfs(td, uap->fd, sfp); in freebsd11_fstatfs()
780 if (error == 0) { in freebsd11_fstatfs()
782 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd11_fstatfs()
785 return (error); in freebsd11_fstatfs()
797 int error; in freebsd11_getfsstat() local
801 error = kern_getfsstat(td, &buf, size, &count, UIO_SYSSPACE, in freebsd11_getfsstat()
803 if (error == 0) in freebsd11_getfsstat()
807 while (count > 0 && error == 0) { in freebsd11_getfsstat()
809 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd11_getfsstat()
816 return (error); in freebsd11_getfsstat()
828 int error; in freebsd11_fhstatfs() local
830 error = copyin(uap->u_fhp, &fh, sizeof(fhandle_t)); in freebsd11_fhstatfs()
831 if (error) in freebsd11_fhstatfs()
832 return (error); in freebsd11_fhstatfs()
834 error = kern_fhstatfs(td, fh, sfp); in freebsd11_fhstatfs()
835 if (error == 0) { in freebsd11_fhstatfs()
837 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd11_fhstatfs()
840 return (error); in freebsd11_fhstatfs()
891 int error; in sys_fchdir() local
894 error = getvnode_path(td, uap->fd, &cap_fchdir_rights, in sys_fchdir()
896 if (error != 0) in sys_fchdir()
897 return (error); in sys_fchdir()
903 error = change_dir(vp, td); in sys_fchdir()
904 while (!error && (mp = vp->v_mountedhere) != NULL) { in sys_fchdir()
907 error = VFS_ROOT(mp, LK_SHARED, &tdp); in sys_fchdir()
909 if (error != 0) in sys_fchdir()
914 if (error != 0) { in sys_fchdir()
916 return (error); in sys_fchdir()
942 int error; in kern_chdir() local
946 if ((error = namei(&nd)) != 0) in kern_chdir()
947 return (error); in kern_chdir()
948 if ((error = change_dir(nd.ni_vp, td)) != 0) { in kern_chdir()
951 return (error); in kern_chdir()
976 int error; in sys_chroot() local
978 error = priv_check(td, PRIV_VFS_CHROOT); in sys_chroot()
979 if (error != 0) { in sys_chroot()
985 return (error); in sys_chroot()
991 error = namei(&nd); in sys_chroot()
992 if (error != 0) in sys_chroot()
993 goto error; in sys_chroot()
994 error = change_dir(nd.ni_vp, td); in sys_chroot()
995 if (error != 0) in sys_chroot()
998 error = mac_vnode_check_chroot(td->td_ucred, nd.ni_vp); in sys_chroot()
999 if (error != 0) in sys_chroot()
1003 error = pwd_chroot(td, nd.ni_vp); in sys_chroot()
1006 return (error); in sys_chroot()
1009 error: in sys_chroot()
1011 return (error); in sys_chroot()
1022 int error; in change_dir() local
1029 error = mac_vnode_check_chdir(td->td_ucred, vp); in change_dir()
1030 if (error != 0) in change_dir()
1031 return (error); in change_dir()
1119 int cmode, error, indx; in kern_openat() local
1150 error = falloc_noinstall(td, &fp); in kern_openat()
1151 if (error != 0) in kern_openat()
1152 return (error); in kern_openat()
1159 error = vn_open_cred(&nd, &flags, cmode, VN_OPEN_WANTIOCTLCAPS, in kern_openat()
1161 if (error != 0) { in kern_openat()
1167 if (error == ENXIO && fp->f_ops != &badfileops) { in kern_openat()
1180 (error == ENODEV || error == ENXIO) && in kern_openat()
1182 error = dupfdopen(td, fdp, td->td_dupfd, flags, error, in kern_openat()
1184 if (error == 0) in kern_openat()
1218 error = fo_truncate(fp, 0, td->td_ucred, td); in kern_openat()
1219 if (error != 0) in kern_openat()
1235 error = finstall_refed(td, fp, &indx, flags, fcaps); in kern_openat()
1237 if (error != 0) { in kern_openat()
1251 return (error); in kern_openat()
1320 int error, whiteout = 0; in kern_mknodat() local
1327 error = priv_check(td, PRIV_VFS_MKNOD_DEV); in kern_mknodat()
1328 if (error == 0 && dev == VNOVAL) in kern_mknodat()
1329 error = EINVAL; in kern_mknodat()
1332 error = priv_check(td, PRIV_VFS_MKNOD_WHT); in kern_mknodat()
1339 error = EINVAL; in kern_mknodat()
1342 if (error != 0) in kern_mknodat()
1343 return (error); in kern_mknodat()
1350 if ((error = namei(&nd)) != 0) in kern_mknodat()
1351 return (error); in kern_mknodat()
1385 if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0) in kern_mknodat()
1386 return (error); in kern_mknodat()
1390 if (error == 0 && !whiteout) in kern_mknodat()
1391 error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, in kern_mknodat()
1394 if (error == 0) { in kern_mknodat()
1396 error = VOP_WHITEOUT(nd.ni_dvp, &nd.ni_cnd, CREATE); in kern_mknodat()
1398 error = VOP_MKNOD(nd.ni_dvp, &nd.ni_vp, in kern_mknodat()
1402 VOP_VPUT_PAIR(nd.ni_dvp, error == 0 && !whiteout ? &nd.ni_vp : NULL, in kern_mknodat()
1406 if (error == ERELOOKUP) in kern_mknodat()
1408 return (error); in kern_mknodat()
1450 int error; in kern_mkfifoat() local
1459 if ((error = namei(&nd)) != 0) in kern_mkfifoat()
1460 return (error); in kern_mkfifoat()
1473 if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0) in kern_mkfifoat()
1474 return (error); in kern_mkfifoat()
1481 error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, &nd.ni_cnd, in kern_mkfifoat()
1483 if (error != 0) in kern_mkfifoat()
1486 error = VOP_MKNOD(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr); in kern_mkfifoat()
1490 VOP_VPUT_PAIR(nd.ni_dvp, error == 0 ? &nd.ni_vp : NULL, true); in kern_mkfifoat()
1493 if (error == ERELOOKUP) in kern_mkfifoat()
1495 return (error); in kern_mkfifoat()
1554 int error; in can_hardlink() local
1559 error = VOP_GETATTR(vp, &va, cred); in can_hardlink()
1560 if (error != 0) in can_hardlink()
1561 return (error); in can_hardlink()
1564 error = priv_check_cred(cred, PRIV_VFS_LINK); in can_hardlink()
1565 if (error != 0) in can_hardlink()
1566 return (error); in can_hardlink()
1570 error = priv_check_cred(cred, PRIV_VFS_LINK); in can_hardlink()
1571 if (error != 0) in can_hardlink()
1572 return (error); in can_hardlink()
1583 int error; in kern_linkat() local
1590 if ((error = namei(&nd)) != 0) in kern_linkat()
1591 return (error); in kern_linkat()
1594 error = priv_check(td, PRIV_VFS_FHOPEN); in kern_linkat()
1595 if (error != 0) { in kern_linkat()
1597 return (error); in kern_linkat()
1600 error = kern_linkat_vp(td, nd.ni_vp, fd2, path2, segflag); in kern_linkat()
1601 } while (error == EAGAIN || error == ERELOOKUP); in kern_linkat()
1602 return (error); in kern_linkat()
1611 int error; in kern_linkat_vp() local
1620 if ((error = namei(&nd)) == 0) { in kern_linkat_vp()
1640 } else if ((error = vn_lock(vp, LK_EXCLUSIVE)) == 0) { in kern_linkat_vp()
1641 error = can_hardlink(vp, td->td_ucred); in kern_linkat_vp()
1643 if (error == 0) in kern_linkat_vp()
1644 error = mac_vnode_check_link(td->td_ucred, in kern_linkat_vp()
1647 if (error != 0) { in kern_linkat_vp()
1651 return (error); in kern_linkat_vp()
1653 error = vn_start_write(vp, &mp, V_NOWAIT); in kern_linkat_vp()
1654 if (error != 0) { in kern_linkat_vp()
1658 error = vn_start_write(NULL, &mp, in kern_linkat_vp()
1660 if (error != 0) in kern_linkat_vp()
1661 return (error); in kern_linkat_vp()
1664 error = VOP_LINK(nd.ni_dvp, vp, &nd.ni_cnd); in kern_linkat_vp()
1678 return (error); in kern_linkat_vp()
1722 int error; in kern_symlinkat() local
1728 if ((error = copyinstr(path1, tmppath, MAXPATHLEN, NULL)) != 0) in kern_symlinkat()
1739 if ((error = namei(&nd)) != 0) in kern_symlinkat()
1749 error = EEXIST; in kern_symlinkat()
1755 if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0) in kern_symlinkat()
1763 error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, &nd.ni_cnd, in kern_symlinkat()
1765 if (error != 0) in kern_symlinkat()
1768 error = VOP_SYMLINK(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr, syspath); in kern_symlinkat()
1772 VOP_VPUT_PAIR(nd.ni_dvp, error == 0 ? &nd.ni_vp : NULL, true); in kern_symlinkat()
1775 if (error == ERELOOKUP) in kern_symlinkat()
1780 return (error); in kern_symlinkat()
1796 int error; in sys_undelete() local
1803 error = namei(&nd); in sys_undelete()
1804 if (error != 0) in sys_undelete()
1805 return (error); in sys_undelete()
1820 if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0) in sys_undelete()
1821 return (error); in sys_undelete()
1824 error = VOP_WHITEOUT(nd.ni_dvp, &nd.ni_cnd, DELETE); in sys_undelete()
1828 if (error == ERELOOKUP) in sys_undelete()
1830 return (error); in sys_undelete()
1903 int error; in kern_funlinkat() local
1907 error = getvnode_path(td, fd, &cap_no_rights, &fp); in kern_funlinkat()
1908 if (error != 0) in kern_funlinkat()
1909 return (error); in kern_funlinkat()
1918 if ((error = namei(&nd)) != 0) { in kern_funlinkat()
1919 if (error == EINVAL) in kern_funlinkat()
1920 error = EPERM; in kern_funlinkat()
1925 error = EPERM; /* POSIX */ in kern_funlinkat()
1927 ((error = VOP_STAT(vp, &sb, td->td_ucred, NOCRED, td)) == 0) && in kern_funlinkat()
1929 error = EIDRM; /* Identifier removed */ in kern_funlinkat()
1932 error = EBADF; in kern_funlinkat()
1934 error = EDEADLK; in kern_funlinkat()
1942 error = EBUSY; in kern_funlinkat()
1944 if (error == 0) { in kern_funlinkat()
1952 if ((error = vn_start_write(NULL, &mp, in kern_funlinkat()
1959 error = mac_vnode_check_unlink(td->td_ucred, nd.ni_dvp, vp, in kern_funlinkat()
1961 if (error != 0) in kern_funlinkat()
1965 error = VOP_REMOVE(nd.ni_dvp, vp, &nd.ni_cnd); in kern_funlinkat()
1977 if (error == ERELOOKUP) in kern_funlinkat()
1982 return (error); in kern_funlinkat()
2007 int error; in kern_lseek() local
2010 error = fget(td, fd, &cap_seek_rights, &fp); in kern_lseek()
2011 if (error != 0) in kern_lseek()
2012 return (error); in kern_lseek()
2013 error = (fp->f_ops->fo_flags & DFLAG_SEEKABLE) != 0 ? in kern_lseek()
2016 return (error); in kern_lseek()
2056 int error; in vn_access() local
2070 error = mac_vnode_check_access(cred, vp, accmode); in vn_access()
2071 if (error != 0) in vn_access()
2072 return (error); in vn_access()
2074 if ((accmode & VWRITE) == 0 || (error = vn_writechk(vp)) == 0) in vn_access()
2075 error = VOP_ACCESS(vp, accmode, cred, td); in vn_access()
2076 return (error); in vn_access()
2119 int error; in kern_accessat() local
2144 if ((error = namei(&nd)) != 0) in kern_accessat()
2148 error = vn_access(vp, amode, usecred, td); in kern_accessat()
2156 return (error); in kern_accessat()
2191 int error; in ostat() local
2193 error = kern_statat(td, 0, AT_FDCWD, uap->path, UIO_USERSPACE, in ostat()
2195 if (error != 0) in ostat()
2196 return (error); in ostat()
2215 int error; in olstat() local
2217 error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, uap->path, in olstat()
2219 if (error != 0) in olstat()
2220 return (error); in olstat()
2334 int error; in freebsd11_stat() local
2336 error = kern_statat(td, 0, AT_FDCWD, uap->path, UIO_USERSPACE, in freebsd11_stat()
2338 if (error != 0) in freebsd11_stat()
2339 return (error); in freebsd11_stat()
2340 error = freebsd11_cvtstat(&sb, &osb); in freebsd11_stat()
2341 if (error == 0) in freebsd11_stat()
2342 error = copyout(&osb, uap->ub, sizeof(osb)); in freebsd11_stat()
2343 return (error); in freebsd11_stat()
2351 int error; in freebsd11_lstat() local
2353 error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, uap->path, in freebsd11_lstat()
2355 if (error != 0) in freebsd11_lstat()
2356 return (error); in freebsd11_lstat()
2357 error = freebsd11_cvtstat(&sb, &osb); in freebsd11_lstat()
2358 if (error == 0) in freebsd11_lstat()
2359 error = copyout(&osb, uap->ub, sizeof(osb)); in freebsd11_lstat()
2360 return (error); in freebsd11_lstat()
2369 int error; in freebsd11_fhstat() local
2371 error = copyin(uap->u_fhp, &fh, sizeof(fhandle_t)); in freebsd11_fhstat()
2372 if (error != 0) in freebsd11_fhstat()
2373 return (error); in freebsd11_fhstat()
2374 error = kern_fhstat(td, fh, &sb); in freebsd11_fhstat()
2375 if (error != 0) in freebsd11_fhstat()
2376 return (error); in freebsd11_fhstat()
2377 error = freebsd11_cvtstat(&sb, &osb); in freebsd11_fhstat()
2378 if (error == 0) in freebsd11_fhstat()
2379 error = copyout(&osb, uap->sb, sizeof(osb)); in freebsd11_fhstat()
2380 return (error); in freebsd11_fhstat()
2388 int error; in freebsd11_fstatat() local
2390 error = kern_statat(td, uap->flag, uap->fd, uap->path, in freebsd11_fstatat()
2392 if (error != 0) in freebsd11_fstatat()
2393 return (error); in freebsd11_fstatat()
2394 error = freebsd11_cvtstat(&sb, &osb); in freebsd11_fstatat()
2395 if (error == 0) in freebsd11_fstatat()
2396 error = copyout(&osb, uap->buf, sizeof(osb)); in freebsd11_fstatat()
2397 return (error); in freebsd11_fstatat()
2416 int error; in sys_fstatat() local
2418 error = kern_statat(td, uap->flag, uap->fd, uap->path, in sys_fstatat()
2420 if (error == 0) in sys_fstatat()
2421 error = copyout(&sb, uap->buf, sizeof (sb)); in sys_fstatat()
2422 return (error); in sys_fstatat()
2431 int error; in kern_statat() local
2441 if ((error = namei(&nd)) != 0) { in kern_statat()
2442 if (error == ENOTDIR && in kern_statat()
2444 error = kern_fstat(td, fd, sbp); in kern_statat()
2445 return (error); in kern_statat()
2447 error = VOP_STAT(nd.ni_vp, sbp, td->td_ucred, NOCRED, td); in kern_statat()
2448 if (error == 0) { in kern_statat()
2462 ktrstat_error(sbp, error); in kern_statat()
2464 return (error); in kern_statat()
2505 int error; in freebsd11_nstat() local
2507 error = kern_statat(td, 0, AT_FDCWD, uap->path, UIO_USERSPACE, in freebsd11_nstat()
2509 if (error != 0) in freebsd11_nstat()
2510 return (error); in freebsd11_nstat()
2529 int error; in freebsd11_nlstat() local
2531 error = kern_statat(td, AT_SYMLINK_NOFOLLOW, AT_FDCWD, uap->path, in freebsd11_nlstat()
2533 if (error != 0) in freebsd11_nlstat()
2534 return (error); in freebsd11_nlstat()
2553 int error; in sys_pathconf() local
2555 error = kern_pathconf(td, uap->path, UIO_USERSPACE, uap->name, FOLLOW, in sys_pathconf()
2557 if (error == 0) in sys_pathconf()
2559 return (error); in sys_pathconf()
2572 int error; in sys_lpathconf() local
2574 error = kern_pathconf(td, uap->path, UIO_USERSPACE, uap->name, in sys_lpathconf()
2576 if (error == 0) in sys_lpathconf()
2578 return (error); in sys_lpathconf()
2586 int error; in kern_pathconf() local
2590 if ((error = namei(&nd)) != 0) in kern_pathconf()
2591 return (error); in kern_pathconf()
2594 error = VOP_PATHCONF(nd.ni_vp, name, valuep); in kern_pathconf()
2596 return (error); in kern_pathconf()
2638 int error; in kern_readlinkat() local
2646 if ((error = namei(&nd)) != 0) in kern_readlinkat()
2647 return (error); in kern_readlinkat()
2651 error = kern_readlink_vp(vp, buf, bufseg, count, td); in kern_readlinkat()
2654 return (error); in kern_readlinkat()
2666 int error; in kern_readlink_vp() local
2670 error = mac_vnode_check_readlink(td->td_ucred, vp); in kern_readlink_vp()
2671 if (error != 0) in kern_readlink_vp()
2672 return (error); in kern_readlink_vp()
2686 error = VOP_READLINK(vp, &auio, td->td_ucred); in kern_readlink_vp()
2688 return (error); in kern_readlink_vp()
2699 int error; in setfflags() local
2712 error = priv_check(td, PRIV_VFS_CHFLAGS_DEV); in setfflags()
2713 if (error != 0) in setfflags()
2714 return (error); in setfflags()
2717 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) in setfflags()
2718 return (error); in setfflags()
2723 error = mac_vnode_check_setflags(td->td_ucred, vp, vattr.va_flags); in setfflags()
2724 if (error == 0) in setfflags()
2726 error = VOP_SETATTR(vp, &vattr, td->td_ucred); in setfflags()
2729 return (error); in setfflags()
2791 int error; in kern_chflagsat() local
2797 if ((error = namei(&nd)) != 0) in kern_chflagsat()
2798 return (error); in kern_chflagsat()
2800 error = setfflags(td, nd.ni_vp, flags); in kern_chflagsat()
2802 return (error); in kern_chflagsat()
2818 int error; in sys_fchflags() local
2822 error = getvnode(td, uap->fd, &cap_fchflags_rights, in sys_fchflags()
2824 if (error != 0) in sys_fchflags()
2825 return (error); in sys_fchflags()
2833 error = setfflags(td, fp->f_vnode, uap->flags); in sys_fchflags()
2835 return (error); in sys_fchflags()
2846 int error; in setfmode() local
2848 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) in setfmode()
2849 return (error); in setfmode()
2854 error = mac_vnode_check_setmode(cred, vp, vattr.va_mode); in setfmode()
2855 if (error == 0) in setfmode()
2857 error = VOP_SETATTR(vp, &vattr, cred); in setfmode()
2860 return (error); in setfmode()
2922 int error; in kern_fchmodat() local
2928 if ((error = namei(&nd)) != 0) in kern_fchmodat()
2929 return (error); in kern_fchmodat()
2931 error = setfmode(td, td->td_ucred, nd.ni_vp, mode); in kern_fchmodat()
2933 return (error); in kern_fchmodat()
2949 int error; in sys_fchmod() local
2954 error = fget(td, uap->fd, &cap_fchmod_rights, &fp); in sys_fchmod()
2955 if (error != 0) in sys_fchmod()
2956 return (error); in sys_fchmod()
2957 error = fo_chmod(fp, uap->mode, td->td_ucred, td); in sys_fchmod()
2959 return (error); in sys_fchmod()
2971 int error; in setfown() local
2973 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) in setfown()
2974 return (error); in setfown()
2980 error = mac_vnode_check_setowner(cred, vp, vattr.va_uid, in setfown()
2982 if (error == 0) in setfown()
2984 error = VOP_SETATTR(vp, &vattr, cred); in setfown()
2987 return (error); in setfown()
3034 int error; in kern_fchownat() local
3041 if ((error = namei(&nd)) != 0) in kern_fchownat()
3042 return (error); in kern_fchownat()
3044 error = setfown(td, td->td_ucred, nd.ni_vp, uid, gid); in kern_fchownat()
3046 return (error); in kern_fchownat()
3081 int error; in sys_fchown() local
3085 error = fget(td, uap->fd, &cap_fchown_rights, &fp); in sys_fchown()
3086 if (error != 0) in sys_fchown()
3087 return (error); in sys_fchown()
3088 error = fo_chown(fp, uap->uid, uap->gid, td->td_ucred, td); in sys_fchown()
3090 return (error); in sys_fchown()
3102 int error; in getutimes() local
3111 if ((error = copyin(usrtvp, tv, sizeof(tv))) != 0) in getutimes()
3112 return (error); in getutimes()
3135 int error; in getutimens() local
3148 } else if ((error = copyin(usrtsp, tsp, sizeof(*tsp) * 2)) != 0) in getutimens()
3149 return (error); in getutimens()
3180 int error; in setutimes() local
3187 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) in setutimes()
3188 return (error); in setutimes()
3203 error = mac_vnode_check_setutimes(td->td_ucred, vp, vattr.va_atime, in setutimes()
3206 if (error == 0) in setutimes()
3207 error = VOP_SETATTR(vp, &vattr, td->td_ucred); in setutimes()
3210 return (error); in setutimes()
3251 int error; in kern_utimesat() local
3253 if ((error = getutimes(tptr, tptrseg, ts)) != 0) in kern_utimesat()
3254 return (error); in kern_utimesat()
3258 if ((error = namei(&nd)) != 0) in kern_utimesat()
3259 return (error); in kern_utimesat()
3261 error = setutimes(td, nd.ni_vp, ts, 2, tptr == NULL); in kern_utimesat()
3263 return (error); in kern_utimesat()
3289 int error; in kern_lutimes() local
3291 if ((error = getutimes(tptr, tptrseg, ts)) != 0) in kern_lutimes()
3292 return (error); in kern_lutimes()
3294 if ((error = namei(&nd)) != 0) in kern_lutimes()
3295 return (error); in kern_lutimes()
3297 error = setutimes(td, nd.ni_vp, ts, 2, tptr == NULL); in kern_lutimes()
3299 return (error); in kern_lutimes()
3324 int error; in kern_futimes() local
3327 error = getutimes(tptr, tptrseg, ts); in kern_futimes()
3328 if (error != 0) in kern_futimes()
3329 return (error); in kern_futimes()
3330 error = getvnode(td, fd, &cap_futimes_rights, &fp); in kern_futimes()
3331 if (error != 0) in kern_futimes()
3332 return (error); in kern_futimes()
3340 error = setutimes(td, fp->f_vnode, ts, 2, tptr == NULL); in kern_futimes()
3342 return (error); in kern_futimes()
3358 int error, flags; in kern_futimens() local
3361 error = getutimens(tptr, tptrseg, ts, &flags); in kern_futimens()
3362 if (error != 0) in kern_futimens()
3363 return (error); in kern_futimens()
3366 error = getvnode(td, fd, &cap_futimes_rights, &fp); in kern_futimens()
3367 if (error != 0) in kern_futimens()
3368 return (error); in kern_futimens()
3376 error = setutimes(td, fp->f_vnode, ts, 2, flags & UTIMENS_NULL); in kern_futimens()
3378 return (error); in kern_futimens()
3396 int error, flags; in kern_utimensat() local
3402 if ((error = getutimens(tptr, tptrseg, ts, &flags)) != 0) in kern_utimensat()
3403 return (error); in kern_utimensat()
3407 if ((error = namei(&nd)) != 0) in kern_utimensat()
3408 return (error); in kern_utimensat()
3417 error = setutimes(td, nd.ni_vp, ts, 2, flags & UTIMENS_NULL); in kern_utimensat()
3419 return (error); in kern_utimensat()
3448 int error; in kern_truncate() local
3455 if ((error = namei(&nd)) != 0) in kern_truncate()
3456 return (error); in kern_truncate()
3459 if ((error = vn_start_write(vp, &mp, V_WAIT | PCATCH)) != 0) { in kern_truncate()
3462 return (error); in kern_truncate()
3467 error = EISDIR; in kern_truncate()
3469 else if ((error = mac_vnode_check_write(td->td_ucred, NOCRED, vp))) { in kern_truncate()
3472 else if ((error = vn_writechk(vp)) == 0 && in kern_truncate()
3473 (error = VOP_ACCESS(vp, VWRITE, td->td_ucred, td)) == 0) { in kern_truncate()
3476 error = VOP_SETATTR(vp, &vattr, td->td_ucred); in kern_truncate()
3482 if (error == ERELOOKUP) in kern_truncate()
3484 return (error); in kern_truncate()
3528 int error; in kern_fsync() local
3531 error = getvnode(td, fd, &cap_fsync_rights, &fp); in kern_fsync()
3532 if (error != 0) in kern_fsync()
3533 return (error); in kern_fsync()
3540 error = vn_start_write(vp, &mp, V_WAIT | PCATCH); in kern_fsync()
3541 if (error != 0) in kern_fsync()
3550 error = fullsync ? VOP_FSYNC(vp, MNT_WAIT, td) : VOP_FDATASYNC(vp, td); in kern_fsync()
3553 if (error == ERELOOKUP) in kern_fsync()
3557 return (error); in kern_fsync()
3621 int error; in kern_renameat_mac() local
3625 if ((error = namei(fromnd)) != 0) in kern_renameat_mac()
3626 return (error); in kern_renameat_mac()
3627 error = mac_vnode_check_rename_from(td->td_ucred, fromnd->ni_dvp, in kern_renameat_mac()
3632 if (error != 0) { in kern_renameat_mac()
3639 return (error); in kern_renameat_mac()
3651 int error; in kern_renameat() local
3657 error = kern_renameat_mac(td, oldfd, old, newfd, new, pathseg, in kern_renameat()
3659 if (error != 0) in kern_renameat()
3660 return (error); in kern_renameat()
3665 if ((error = namei(&fromnd)) != 0) in kern_renameat()
3666 return (error); in kern_renameat()
3676 if ((error = namei(&tond)) != 0) { in kern_renameat()
3678 if (error == EISDIR && fvp->v_type == VDIR) in kern_renameat()
3679 error = EINVAL; in kern_renameat()
3687 error = vn_start_write(fvp, &mp, V_NOWAIT); in kern_renameat()
3688 if (error != 0) { in kern_renameat()
3702 error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH); in kern_renameat()
3703 if (error != 0) in kern_renameat()
3704 return (error); in kern_renameat()
3709 error = ENOTDIR; in kern_renameat()
3712 error = EISDIR; in kern_renameat()
3721 error = cap_check(&tond.ni_filecaps.fc_rights, in kern_renameat()
3723 if (error != 0) in kern_renameat()
3729 error = EINVAL; in kern_renameat()
3737 error = ERESTART; in kern_renameat()
3740 error = mac_vnode_check_rename_to(td->td_ucred, tdvp, in kern_renameat()
3744 if (error == 0) { in kern_renameat()
3745 error = VOP_RENAME(fromnd.ni_dvp, fromnd.ni_vp, &fromnd.ni_cnd, in kern_renameat()
3766 if (error == ERESTART) in kern_renameat()
3768 if (error == ERELOOKUP) in kern_renameat()
3770 return (error); in kern_renameat()
3811 int error; in kern_mkdirat() local
3820 if ((error = namei(&nd)) != 0) in kern_mkdirat()
3821 return (error); in kern_mkdirat()
3825 if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0) in kern_mkdirat()
3826 return (error); in kern_mkdirat()
3833 error = mac_vnode_check_create(td->td_ucred, nd.ni_dvp, &nd.ni_cnd, in kern_mkdirat()
3835 if (error != 0) in kern_mkdirat()
3838 error = VOP_MKDIR(nd.ni_dvp, &nd.ni_vp, &nd.ni_cnd, &vattr); in kern_mkdirat()
3843 VOP_VPUT_PAIR(nd.ni_dvp, error == 0 ? &nd.ni_vp : NULL, true); in kern_mkdirat()
3845 if (error == ERELOOKUP) in kern_mkdirat()
3847 return (error); in kern_mkdirat()
3875 int error; in kern_frmdirat() local
3879 error = getvnode(td, fd, cap_rights_init_one(&rights, in kern_frmdirat()
3881 if (error != 0) in kern_frmdirat()
3882 return (error); in kern_frmdirat()
3891 if ((error = namei(&nd)) != 0) in kern_frmdirat()
3895 error = ENOTDIR; in kern_frmdirat()
3902 error = EINVAL; in kern_frmdirat()
3909 error = EBUSY; in kern_frmdirat()
3915 error = EBADF; in kern_frmdirat()
3917 error = EDEADLK; in kern_frmdirat()
3922 error = mac_vnode_check_unlink(td->td_ucred, nd.ni_dvp, vp, in kern_frmdirat()
3924 if (error != 0) in kern_frmdirat()
3934 if ((error = vn_start_write(NULL, &mp, V_XSLEEP | PCATCH)) != 0) in kern_frmdirat()
3939 error = VOP_RMDIR(nd.ni_dvp, nd.ni_vp, &nd.ni_cnd); in kern_frmdirat()
3948 if (error == ERELOOKUP) in kern_frmdirat()
3953 return (error); in kern_frmdirat()
3966 int error; in freebsd11_kern_getdirentries() local
3973 error = kern_getdirentries(td, fd, dirbuf, count, &base, &resid, in freebsd11_kern_getdirentries()
3975 if (error != 0) in freebsd11_kern_getdirentries()
3998 error = EOVERFLOW; in freebsd11_kern_getdirentries()
4015 error = copyout(&dstdp, ubuf + ucount, dstdp.d_reclen); in freebsd11_kern_getdirentries()
4016 if (error != 0) in freebsd11_kern_getdirentries()
4024 if (error == 0) in freebsd11_kern_getdirentries()
4026 return (error); in freebsd11_kern_getdirentries()
4065 int error; in ogetdirentries() local
4067 error = kern_ogetdirentries(td, uap, &loff); in ogetdirentries()
4068 if (error == 0) in ogetdirentries()
4069 error = copyout(&loff, uap->basep, sizeof(long)); in ogetdirentries()
4070 return (error); in ogetdirentries()
4078 int error; in kern_ogetdirentries() local
4084 error = freebsd11_kern_getdirentries(td, uap->fd, uap->buf, uap->count, in kern_ogetdirentries()
4087 if (error == 0 && uap->basep != NULL) in kern_ogetdirentries()
4088 error = copyout(&base, uap->basep, sizeof(long)); in kern_ogetdirentries()
4090 return (error); in kern_ogetdirentries()
4108 int error; in freebsd11_getdirentries() local
4110 error = freebsd11_kern_getdirentries(td, uap->fd, uap->buf, uap->count, in freebsd11_getdirentries()
4113 if (error == 0 && uap->basep != NULL) in freebsd11_getdirentries()
4114 error = copyout(&base, uap->basep, sizeof(long)); in freebsd11_getdirentries()
4115 return (error); in freebsd11_getdirentries()
4138 int error; in sys_getdirentries() local
4140 error = kern_getdirentries(td, uap->fd, uap->buf, uap->count, &base, in sys_getdirentries()
4142 if (error != 0) in sys_getdirentries()
4143 return (error); in sys_getdirentries()
4145 error = copyout(&base, uap->basep, sizeof(off_t)); in sys_getdirentries()
4146 return (error); in sys_getdirentries()
4158 int error, eofflag; in kern_getdirentries() local
4165 error = getvnode(td, fd, &cap_read_rights, &fp); in kern_getdirentries()
4166 if (error != 0) in kern_getdirentries()
4167 return (error); in kern_getdirentries()
4176 error = EINVAL; in kern_getdirentries()
4190 error = mac_vnode_check_readdir(td->td_ucred, vp); in kern_getdirentries()
4191 if (error == 0) in kern_getdirentries()
4193 error = VOP_READDIR(vp, &auio, fp->f_cred, &eofflag, NULL, in kern_getdirentries()
4196 if (error != 0) { in kern_getdirentries()
4220 return (error); in kern_getdirentries()
4259 int error; in sys_revoke() local
4263 if ((error = namei(&nd)) != 0) in sys_revoke()
4264 return (error); in sys_revoke()
4268 error = EINVAL; in sys_revoke()
4272 error = mac_vnode_check_revoke(td->td_ucred, vp); in sys_revoke()
4273 if (error != 0) in sys_revoke()
4276 error = VOP_GETATTR(vp, &vattr, td->td_ucred); in sys_revoke()
4277 if (error != 0) in sys_revoke()
4280 error = priv_check(td, PRIV_VFS_ADMIN); in sys_revoke()
4281 if (error != 0) in sys_revoke()
4288 return (error); in sys_revoke()
4301 int error; in getvnode_path() local
4303 error = fget_unlocked(td->td_proc->p_fd, fd, rightsp, &fp); in getvnode_path()
4304 if (error != 0) in getvnode_path()
4305 return (error); in getvnode_path()
4337 int error; in getvnode() local
4339 error = getvnode_path(td, fd, rightsp, fpp); in getvnode()
4345 if (error == 0 && (*fpp)->f_ops == &path_fileops) { in getvnode()
4348 error = EBADF; in getvnode()
4351 return (error); in getvnode()
4417 int error; in kern_getfhat() local
4419 error = priv_check(td, PRIV_VFS_GETFH); in kern_getfhat()
4420 if (error != 0) in kern_getfhat()
4421 return (error); in kern_getfhat()
4425 error = namei(&nd); in kern_getfhat()
4426 if (error != 0) in kern_getfhat()
4427 return (error); in kern_getfhat()
4432 error = VOP_VPTOFH(vp, &fh.fh_fid); in kern_getfhat()
4434 if (error == 0) { in kern_getfhat()
4436 error = copyout(&fh, fhp, sizeof (fh)); in kern_getfhat()
4440 return (error); in kern_getfhat()
4477 int error; in kern_fhlinkat() local
4479 error = priv_check(td, PRIV_VFS_GETFH); in kern_fhlinkat()
4480 if (error != 0) in kern_fhlinkat()
4481 return (error); in kern_fhlinkat()
4482 error = copyin(fhp, &fh, sizeof(fh)); in kern_fhlinkat()
4483 if (error != 0) in kern_fhlinkat()
4484 return (error); in kern_fhlinkat()
4489 error = VFS_FHTOVP(mp, &fh.fh_fid, LK_SHARED, &vp); in kern_fhlinkat()
4491 if (error != 0) in kern_fhlinkat()
4492 return (error); in kern_fhlinkat()
4494 error = kern_linkat_vp(td, vp, fd, path, pathseg); in kern_fhlinkat()
4495 } while (error == EAGAIN || error == ERELOOKUP); in kern_fhlinkat()
4496 return (error); in kern_fhlinkat()
4512 int error; in sys_fhreadlink() local
4514 error = priv_check(td, PRIV_VFS_GETFH); in sys_fhreadlink()
4515 if (error != 0) in sys_fhreadlink()
4516 return (error); in sys_fhreadlink()
4519 error = copyin(uap->fhp, &fh, sizeof(fh)); in sys_fhreadlink()
4520 if (error != 0) in sys_fhreadlink()
4521 return (error); in sys_fhreadlink()
4524 error = VFS_FHTOVP(mp, &fh.fh_fid, LK_SHARED, &vp); in sys_fhreadlink()
4526 if (error != 0) in sys_fhreadlink()
4527 return (error); in sys_fhreadlink()
4528 error = kern_readlink_vp(vp, uap->buf, UIO_USERSPACE, uap->bufsize, td); in sys_fhreadlink()
4530 return (error); in sys_fhreadlink()
4559 int fmode, error; in kern_fhopen() local
4562 error = priv_check(td, PRIV_VFS_FHOPEN); in kern_fhopen()
4563 if (error != 0) in kern_fhopen()
4564 return (error); in kern_fhopen()
4570 error = copyin(u_fhp, &fhp, sizeof(fhp)); in kern_fhopen()
4571 if (error != 0) in kern_fhopen()
4572 return(error); in kern_fhopen()
4578 error = VFS_FHTOVP(mp, &fhp.fh_fid, LK_EXCLUSIVE, &vp); in kern_fhopen()
4580 if (error != 0) in kern_fhopen()
4581 return (error); in kern_fhopen()
4583 error = falloc_noinstall(td, &fp); in kern_fhopen()
4584 if (error != 0) { in kern_fhopen()
4586 return (error); in kern_fhopen()
4596 error = vn_open_vnode(vp, fmode, td->td_ucred, td, fp); in kern_fhopen()
4597 if (error != 0) { in kern_fhopen()
4613 error = fo_truncate(fp, 0, td->td_ucred, td); in kern_fhopen()
4614 if (error != 0) in kern_fhopen()
4618 error = finstall(td, fp, &indx, fmode, NULL); in kern_fhopen()
4622 return (error); in kern_fhopen()
4639 int error; in sys_fhstat() local
4641 error = copyin(uap->u_fhp, &fh, sizeof(fh)); in sys_fhstat()
4642 if (error != 0) in sys_fhstat()
4643 return (error); in sys_fhstat()
4644 error = kern_fhstat(td, fh, &sb); in sys_fhstat()
4645 if (error == 0) in sys_fhstat()
4646 error = copyout(&sb, uap->sb, sizeof(sb)); in sys_fhstat()
4647 return (error); in sys_fhstat()
4655 int error; in kern_fhstat() local
4657 error = priv_check(td, PRIV_VFS_FHSTAT); in kern_fhstat()
4658 if (error != 0) in kern_fhstat()
4659 return (error); in kern_fhstat()
4662 error = VFS_FHTOVP(mp, &fh.fh_fid, LK_EXCLUSIVE, &vp); in kern_fhstat()
4664 if (error != 0) in kern_fhstat()
4665 return (error); in kern_fhstat()
4666 error = VOP_STAT(vp, sb, td->td_ucred, NOCRED, td); in kern_fhstat()
4668 return (error); in kern_fhstat()
4685 int error; in sys_fhstatfs() local
4687 error = copyin(uap->u_fhp, &fh, sizeof(fhandle_t)); in sys_fhstatfs()
4688 if (error != 0) in sys_fhstatfs()
4689 return (error); in sys_fhstatfs()
4691 error = kern_fhstatfs(td, fh, sfp); in sys_fhstatfs()
4692 if (error == 0) in sys_fhstatfs()
4693 error = copyout(sfp, uap->buf, sizeof(*sfp)); in sys_fhstatfs()
4695 return (error); in sys_fhstatfs()
4703 int error; in kern_fhstatfs() local
4705 error = priv_check(td, PRIV_VFS_FHSTATFS); in kern_fhstatfs()
4706 if (error != 0) in kern_fhstatfs()
4707 return (error); in kern_fhstatfs()
4710 error = VFS_FHTOVP(mp, &fh.fh_fid, LK_EXCLUSIVE, &vp); in kern_fhstatfs()
4711 if (error != 0) { in kern_fhstatfs()
4713 return (error); in kern_fhstatfs()
4716 error = prison_canseemount(td->td_ucred, mp); in kern_fhstatfs()
4717 if (error != 0) in kern_fhstatfs()
4720 error = mac_mount_check_stat(td->td_ucred, mp); in kern_fhstatfs()
4721 if (error != 0) in kern_fhstatfs()
4724 error = VFS_STATFS(mp, buf); in kern_fhstatfs()
4727 return (error); in kern_fhstatfs()
4744 int error; in kern_posix_fadvise() local
4765 error = fget(td, fd, &cap_no_rights, &fp); in kern_posix_fadvise()
4766 if (error != 0) in kern_posix_fadvise()
4770 error = ESPIPE; in kern_posix_fadvise()
4774 error = ENODEV; in kern_posix_fadvise()
4779 error = ENODEV; in kern_posix_fadvise()
4848 error = VOP_ADVISE(vp, offset, end, advice); in kern_posix_fadvise()
4855 return (error); in kern_posix_fadvise()
4861 int error; in sys_posix_fadvise() local
4863 error = kern_posix_fadvise(td, uap->fd, uap->offset, uap->len, in sys_posix_fadvise()
4865 return (kern_posix_error(td, error)); in sys_posix_fadvise()
4874 int error; in kern_copy_file_range() local
4882 error = 0; in kern_copy_file_range()
4886 error = EINVAL; in kern_copy_file_range()
4898 error = fget_read(td, infd, &cap_read_rights, &infp); in kern_copy_file_range()
4899 if (error != 0) in kern_copy_file_range()
4902 error = EBADF; in kern_copy_file_range()
4906 error = EINVAL; in kern_copy_file_range()
4909 error = fget_write(td, outfd, &cap_write_rights, &outfp); in kern_copy_file_range()
4910 if (error != 0) in kern_copy_file_range()
4913 error = EBADF; in kern_copy_file_range()
4917 error = EINVAL; in kern_copy_file_range()
4934 error = EBADF; in kern_copy_file_range()
4949 error = EINVAL; in kern_copy_file_range()
4967 error = vn_copy_file_range(invp, inoffp, outvp, outoffp, &retlen, in kern_copy_file_range()
4974 if (savinoff != -1 && (error == EINTR || error == ERESTART)) { in kern_copy_file_range()
4983 return (error); in kern_copy_file_range()
4990 int error; in sys_copy_file_range() local
4994 error = copyin(uap->inoffp, &inoff, sizeof(off_t)); in sys_copy_file_range()
4995 if (error != 0) in sys_copy_file_range()
4996 return (error); in sys_copy_file_range()
5000 error = copyin(uap->outoffp, &outoff, sizeof(off_t)); in sys_copy_file_range()
5001 if (error != 0) in sys_copy_file_range()
5002 return (error); in sys_copy_file_range()
5005 error = kern_copy_file_range(td, uap->infd, inoffp, uap->outfd, in sys_copy_file_range()
5007 if (error == 0 && uap->inoffp != NULL) in sys_copy_file_range()
5008 error = copyout(inoffp, uap->inoffp, sizeof(off_t)); in sys_copy_file_range()
5009 if (error == 0 && uap->outoffp != NULL) in sys_copy_file_range()
5010 error = copyout(outoffp, uap->outoffp, sizeof(off_t)); in sys_copy_file_range()
5011 return (error); in sys_copy_file_range()