Lines Matching defs:ip

144 	struct inode *ip;
149 ip = VTOI(vp);
150 if (UFS_RDONLY(ip))
152 if ((ip->i_flag & (IN_ACCESS | IN_CHANGE | IN_UPDATE)) == 0)
156 ip->i_flag |= IN_LAZYMOD;
159 (ip->i_flag & (IN_CHANGE | IN_UPDATE)))
160 ip->i_flag |= IN_MODIFIED;
161 else if (ip->i_flag & IN_ACCESS)
162 ip->i_flag |= IN_LAZYACCESS;
164 if (ip->i_flag & IN_ACCESS) {
165 DIP_SET(ip, i_atime, ts.tv_sec);
166 DIP_SET(ip, i_atimensec, ts.tv_nsec);
168 if (ip->i_flag & IN_UPDATE) {
169 DIP_SET(ip, i_mtime, ts.tv_sec);
170 DIP_SET(ip, i_mtimensec, ts.tv_nsec);
172 if (ip->i_flag & IN_CHANGE) {
173 DIP_SET(ip, i_ctime, ts.tv_sec);
174 DIP_SET(ip, i_ctimensec, ts.tv_nsec);
175 DIP_SET(ip, i_modrev, DIP(ip, i_modrev) + 1);
179 ip->i_flag &= ~(IN_ACCESS | IN_CHANGE | IN_UPDATE);
228 struct inode *ip;
236 ip = VTOI(*vpp);
237 ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
243 DIP_SET(ip, i_rdev, vap->va_rdev);
251 ino = ip->i_number; /* Save this before vgone() invalidates ip. */
270 struct inode *ip;
275 ip = VTOI(vp);
279 if ((ip->i_flags & APPEND) &&
282 vnode_create_vobject(vp, DIP(ip, i_size), ap->a_td);
322 struct inode *ip = VTOI(vp);
370 error = getinoquota(ip);
389 (ip->i_flags & (IMMUTABLE | SF_SNAPSHOT)))
407 error = vaccess_acl_nfs4(vp->v_type, ip->i_uid,
408 ip->i_gid, acl, accmode, ap->a_cred, NULL);
412 error = vaccess_acl_posix1e(vp->v_type, ip->i_uid,
413 ip->i_gid, acl, accmode, ap->a_cred, NULL);
428 error = vaccess(vp->v_type, ip->i_mode, ip->i_uid,
429 ip->i_gid, accmode, ap->a_cred, NULL);
438 error = vaccess(vp->v_type, ip->i_mode, ip->i_uid, ip->i_gid,
453 struct inode *ip = VTOI(vp);
458 if (ip->i_ump->um_fstype == UFS1) {
459 vap->va_atime.tv_sec = ip->i_din1->di_atime;
460 vap->va_atime.tv_nsec = ip->i_din1->di_atimensec;
462 vap->va_atime.tv_sec = ip->i_din2->di_atime;
463 vap->va_atime.tv_nsec = ip->i_din2->di_atimensec;
469 vap->va_fsid = dev2udev(ip->i_dev);
470 vap->va_fileid = ip->i_number;
471 vap->va_mode = ip->i_mode & ~IFMT;
472 vap->va_nlink = ip->i_effnlink;
473 vap->va_uid = ip->i_uid;
474 vap->va_gid = ip->i_gid;
475 if (ip->i_ump->um_fstype == UFS1) {
476 vap->va_rdev = ip->i_din1->di_rdev;
477 vap->va_size = ip->i_din1->di_size;
478 vap->va_mtime.tv_sec = ip->i_din1->di_mtime;
479 vap->va_mtime.tv_nsec = ip->i_din1->di_mtimensec;
480 vap->va_ctime.tv_sec = ip->i_din1->di_ctime;
481 vap->va_ctime.tv_nsec = ip->i_din1->di_ctimensec;
482 vap->va_bytes = dbtob((u_quad_t)ip->i_din1->di_blocks);
483 vap->va_filerev = ip->i_din1->di_modrev;
485 vap->va_rdev = ip->i_din2->di_rdev;
486 vap->va_size = ip->i_din2->di_size;
487 vap->va_mtime.tv_sec = ip->i_din2->di_mtime;
488 vap->va_mtime.tv_nsec = ip->i_din2->di_mtimensec;
489 vap->va_ctime.tv_sec = ip->i_din2->di_ctime;
490 vap->va_ctime.tv_nsec = ip->i_din2->di_ctimensec;
491 vap->va_birthtime.tv_sec = ip->i_din2->di_birthtime;
492 vap->va_birthtime.tv_nsec = ip->i_din2->di_birthnsec;
493 vap->va_bytes = dbtob((u_quad_t)ip->i_din2->di_blocks);
494 vap->va_filerev = ip->i_din2->di_modrev;
496 vap->va_flags = ip->i_flags;
497 vap->va_gen = ip->i_gen;
499 vap->va_type = IFTOVT(ip->i_mode);
516 struct inode *ip = VTOI(vp);
556 if (ip->i_flags &
563 if ((vap->va_flags ^ ip->i_flags) & SF_SNAPSHOT)
566 if (ip->i_flags &
568 ((vap->va_flags ^ ip->i_flags) & SF_SETTABLE))
571 ip->i_flags = vap->va_flags;
572 DIP_SET(ip, i_flags, vap->va_flags);
573 ip->i_flag |= IN_CHANGE;
575 if (ip->i_flags & (IMMUTABLE | APPEND))
583 if (ip->i_flags & (IMMUTABLE | APPEND))
613 if ((ip->i_flags & SF_SNAPSHOT) != 0)
636 if ((ip->i_flags & SF_SNAPSHOT) != 0)
642 ip->i_flag |= IN_ACCESS;
644 ip->i_flag |= IN_CHANGE | IN_UPDATE;
646 ip->i_ump->um_fstype == UFS2)
647 ip->i_flag |= IN_MODIFIED;
650 DIP_SET(ip, i_atime, vap->va_atime.tv_sec);
651 DIP_SET(ip, i_atimensec, vap->va_atime.tv_nsec);
654 DIP_SET(ip, i_mtime, vap->va_mtime.tv_sec);
655 DIP_SET(ip, i_mtimensec, vap->va_mtime.tv_nsec);
658 ip->i_ump->um_fstype == UFS2) {
659 ip->i_din2->di_birthtime = vap->va_birthtime.tv_sec;
660 ip->i_din2->di_birthnsec = vap->va_birthtime.tv_nsec;
670 if ((ip->i_flags & SF_SNAPSHOT) != 0 && (vap->va_mode &
715 struct inode *ip = VTOI(vp);
718 ip->i_flag |= IN_ACCESS;
737 struct inode *ip = VTOI(vp);
756 if (!groupmember(ip->i_gid, cred) && (mode & ISGID)) {
765 if ((mode & ISUID) && ip->i_uid != cred->cr_uid) {
771 ip->i_mode &= ~ALLPERMS;
772 ip->i_mode |= (mode & ALLPERMS);
773 DIP_SET(ip, i_mode, ip->i_mode);
774 ip->i_flag |= IN_CHANGE;
777 error = ufs_update_nfs4_acl_after_mode_change(vp, mode, ip->i_uid, cred, td);
779 if (error == 0 && (ip->i_flag & IN_CHANGE) != 0)
786 * Perform chown operation on inode ip;
797 struct inode *ip = VTOI(vp);
807 uid = ip->i_uid;
809 gid = ip->i_gid;
821 if (((uid != ip->i_uid && uid != cred->cr_uid) ||
822 (gid != ip->i_gid && !groupmember(gid, cred))) &&
825 ogid = ip->i_gid;
826 ouid = ip->i_uid;
828 if ((error = getinoquota(ip)) != 0)
831 dqrele(vp, ip->i_dquot[USRQUOTA]);
832 ip->i_dquot[USRQUOTA] = NODQUOT;
835 dqrele(vp, ip->i_dquot[GRPQUOTA]);
836 ip->i_dquot[GRPQUOTA] = NODQUOT;
838 change = DIP(ip, i_blocks);
839 (void) chkdq(ip, -change, cred, CHOWN);
840 (void) chkiq(ip, -1, cred, CHOWN);
842 dqrele(vp, ip->i_dquot[i]);
843 ip->i_dquot[i] = NODQUOT;
846 ip->i_gid = gid;
847 DIP_SET(ip, i_gid, gid);
848 ip->i_uid = uid;
849 DIP_SET(ip, i_uid, uid);
851 if ((error = getinoquota(ip)) == 0) {
853 dqrele(vp, ip->i_dquot[USRQUOTA]);
854 ip->i_dquot[USRQUOTA] = NODQUOT;
857 dqrele(vp, ip->i_dquot[GRPQUOTA]);
858 ip->i_dquot[GRPQUOTA] = NODQUOT;
860 if ((error = chkdq(ip, change, cred, CHOWN)) == 0) {
861 if ((error = chkiq(ip, 1, cred, CHOWN)) == 0)
864 (void) chkdq(ip, -change, cred, CHOWN|FORCE);
867 dqrele(vp, ip->i_dquot[i]);
868 ip->i_dquot[i] = NODQUOT;
871 ip->i_gid = ogid;
872 DIP_SET(ip, i_gid, ogid);
873 ip->i_uid = ouid;
874 DIP_SET(ip, i_uid, ouid);
875 if (getinoquota(ip) == 0) {
877 dqrele(vp, ip->i_dquot[USRQUOTA]);
878 ip->i_dquot[USRQUOTA] = NODQUOT;
881 dqrele(vp, ip->i_dquot[GRPQUOTA]);
882 ip->i_dquot[GRPQUOTA] = NODQUOT;
884 (void) chkdq(ip, change, cred, FORCE|CHOWN);
885 (void) chkiq(ip, 1, cred, FORCE|CHOWN);
886 (void) getinoquota(ip);
890 if (getinoquota(ip))
893 ip->i_flag |= IN_CHANGE;
894 if ((ip->i_mode & (ISUID | ISGID)) && (ouid != uid || ogid != gid)) {
896 ip->i_mode &= ~(ISUID | ISGID);
897 DIP_SET(ip, i_mode, ip->i_mode);
912 struct inode *ip;
919 ip = VTOI(vp);
920 if ((ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND)) ||
928 error = ufs_dirremove(dvp, ip, ap->a_cnp->cn_flags, 0);
929 if (ip->i_nlink <= 0)
931 if ((ip->i_flags & SF_SNAPSHOT) != 0) {
963 struct inode *ip;
974 ip = VTOI(vp);
975 if ((nlink_t)ip->i_nlink >= LINK_MAX) {
983 if (ip->i_effnlink == 0) {
987 if (ip->i_flags & (IMMUTABLE | APPEND)) {
991 ip->i_effnlink++;
992 ip->i_nlink++;
993 DIP_SET(ip, i_nlink, ip->i_nlink);
994 ip->i_flag |= IN_CHANGE;
996 softdep_setup_link(VTOI(tdvp), ip);
999 ufs_makedirentry(ip, cnp, &newdir);
1004 ip->i_effnlink--;
1005 ip->i_nlink--;
1006 DIP_SET(ip, i_nlink, ip->i_nlink);
1007 ip->i_flag |= IN_CHANGE;
1009 softdep_revert_link(VTOI(tdvp), ip);
1571 struct inode *ip = VTOI(tvp);
1590 ip->i_mode = dmode;
1591 DIP_SET(ip, i_mode, dmode);
1593 ufs_sync_acl_from_inode(ip, acl);
1602 ip->i_mode = dmode;
1603 DIP_SET(ip, i_mode, dmode);
1649 struct inode *ip = VTOI(tvp);
1673 ip->i_mode = mode;
1674 DIP_SET(ip, i_mode, mode);
1675 ufs_sync_acl_from_inode(ip, acl);
1684 ip->i_mode = mode;
1685 DIP_SET(ip, i_mode, mode);
1764 struct inode *ip, *dp;
1791 ip = VTOI(tvp);
1792 ip->i_gid = dp->i_gid;
1793 DIP_SET(ip, i_gid, dp->i_gid);
1812 ip->i_uid = dp->i_uid;
1813 DIP_SET(ip, i_uid, dp->i_uid);
1824 ucred.cr_uid = ip->i_uid;
1832 ip->i_uid = cnp->cn_cred->cr_uid;
1833 DIP_SET(ip, i_uid, ip->i_uid);
1836 if ((error = getinoquota(ip)) ||
1837 (error = chkiq(ip, 1, ucp, 0))) {
1839 softdep_revert_link(dp, ip);
1840 UFS_VFREE(tvp, ip->i_number, dmode);
1847 ip->i_uid = cnp->cn_cred->cr_uid;
1848 DIP_SET(ip, i_uid, ip->i_uid);
1850 if ((error = getinoquota(ip)) ||
1851 (error = chkiq(ip, 1, cnp->cn_cred, 0))) {
1853 softdep_revert_link(dp, ip);
1854 UFS_VFREE(tvp, ip->i_number, dmode);
1860 ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
1861 ip->i_mode = dmode;
1862 DIP_SET(ip, i_mode, dmode);
1864 ip->i_effnlink = 2;
1865 ip->i_nlink = 2;
1866 DIP_SET(ip, i_nlink, 2);
1869 ip->i_flags |= UF_OPAQUE;
1870 DIP_SET(ip, i_flags, ip->i_flags);
1883 softdep_setup_mkdir(dp, ip);
1917 dirtemplate.dot_ino = ip->i_number;
1922 ip->i_size = DIRBLKSIZ;
1923 DIP_SET(ip, i_size, DIRBLKSIZ);
1924 ip->i_flag |= IN_CHANGE | IN_UPDATE;
1925 vnode_pager_setsize(tvp, (u_long)ip->i_size);
1961 ufs_makedirentry(ip, cnp, &newdir);
1976 ip->i_effnlink = 0;
1977 ip->i_nlink = 0;
1978 DIP_SET(ip, i_nlink, 0);
1979 ip->i_flag |= IN_CHANGE;
1981 softdep_revert_mkdir(dp, ip);
2003 struct inode *ip, *dp;
2006 ip = VTOI(vp);
2018 if (ip->i_effnlink < 2) {
2025 if (!ufs_dirempty(ip, dp->i_number, cnp->cn_cred)) {
2030 || (ip->i_flags & (NOUNLINK | IMMUTABLE | APPEND))) {
2047 ip->i_effnlink--;
2049 softdep_setup_rmdir(dp, ip);
2050 error = ufs_dirremove(dvp, ip, cnp->cn_flags, 1);
2053 ip->i_effnlink++;
2055 softdep_revert_rmdir(dp, ip);
2071 ip->i_nlink--;
2072 DIP_SET(ip, i_nlink, ip->i_nlink);
2073 ip->i_flag |= IN_CHANGE;
2078 if (ip->i_dirhash != NULL)
2079 ufsdirhash_free(ip);
2099 struct inode *ip;
2109 ip = VTOI(vp);
2110 bcopy(ap->a_target, SHORTLINK(ip), len);
2111 ip->i_size = len;
2112 DIP_SET(ip, i_size, len);
2113 ip->i_flag |= IN_CHANGE | IN_UPDATE;
2141 struct inode *ip;
2153 ip = VTOI(vp);
2154 if (ip->i_effnlink == 0)
2158 if (uio->uio_offset >= ip->i_size)
2160 else if (ip->i_size - uio->uio_offset < ncookies)
2161 ncookies = ip->i_size - uio->uio_offset;
2174 uio->uio_offset < ip->i_size) {
2178 if (bp->b_offset + bp->b_bcount > ip->i_size)
2179 readcnt = ip->i_size - bp->b_offset;
2254 *ap->a_eofflag = ip->i_size <= uio->uio_offset;
2270 struct inode *ip = VTOI(vp);
2273 isize = ip->i_size;
2275 DIP(ip, i_blocks) == 0) { /* XXX - for old fastlink support */
2276 return (uiomove(SHORTLINK(ip), isize, ap->a_uio));
2298 struct inode *ip;
2302 ip = VTOI(vp);
2320 bo = ip->i_umbufobj;
2335 struct inode *ip = VTOI(vp);
2337 printf("\tino %lu, on dev %s", (u_long)ip->i_number,
2338 devtoname(ip->i_dev));
2539 struct inode *ip;
2543 ip = VTOI(vp);
2544 vp->v_type = IFTOVT(ip->i_mode);
2548 if (ip->i_number == ROOTINO)
2565 struct inode *ip, *pdir;
2585 ip = VTOI(tvp);
2586 ip->i_gid = pdir->i_gid;
2587 DIP_SET(ip, i_gid, pdir->i_gid);
2605 ip->i_uid = pdir->i_uid;
2606 DIP_SET(ip, i_uid, ip->i_uid);
2617 ucred.cr_uid = ip->i_uid;
2624 ip->i_uid = cnp->cn_cred->cr_uid;
2625 DIP_SET(ip, i_uid, ip->i_uid);
2629 if ((error = getinoquota(ip)) ||
2630 (error = chkiq(ip, 1, ucp, 0))) {
2632 softdep_revert_link(pdir, ip);
2633 UFS_VFREE(tvp, ip->i_number, mode);
2640 ip->i_uid = cnp->cn_cred->cr_uid;
2641 DIP_SET(ip, i_uid, ip->i_uid);
2643 if ((error = getinoquota(ip)) ||
2644 (error = chkiq(ip, 1, cnp->cn_cred, 0))) {
2646 softdep_revert_link(pdir, ip);
2647 UFS_VFREE(tvp, ip->i_number, mode);
2653 ip->i_flag |= IN_ACCESS | IN_CHANGE | IN_UPDATE;
2654 ip->i_mode = mode;
2655 DIP_SET(ip, i_mode, mode);
2657 ip->i_effnlink = 1;
2658 ip->i_nlink = 1;
2659 DIP_SET(ip, i_nlink, 1);
2661 softdep_setup_create(VTOI(dvp), ip);
2662 if ((ip->i_mode & ISGID) && !groupmember(ip->i_gid, cnp->cn_cred) &&
2664 ip->i_mode &= ~ISGID;
2665 DIP_SET(ip, i_mode, ip->i_mode);
2669 ip->i_flags |= UF_OPAQUE;
2670 DIP_SET(ip, i_flags, ip->i_flags);
2700 ufs_makedirentry(ip, cnp, &newdir);
2712 ip->i_effnlink = 0;
2713 ip->i_nlink = 0;
2714 DIP_SET(ip, i_nlink, 0);
2715 ip->i_flag |= IN_CHANGE;
2717 softdep_revert_create(VTOI(dvp), ip);