• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/contrib/openzfs/module/os/linux/zfs/

Lines Matching refs:zp

87  *      must be checked with ZFS_VERIFY_ZP(zp).  Both of these macros
92 * last reference, the vnode/znode can be freed, so the zp may point to
194 znode_t *zp = ITOZ(ip);
198 ZFS_VERIFY_ZP(zp);
201 if ((mode & FMODE_WRITE) && (zp->z_pflags & ZFS_APPENDONLY) &&
208 if (!zfs_has_ctldir(zp) && zfsvfs->z_vscan && S_ISREG(ip->i_mode) &&
209 !(zp->z_pflags & ZFS_AV_QUARANTINED) && zp->z_size > 0) {
218 atomic_inc_32(&zp->z_sync_cnt);
228 znode_t *zp = ITOZ(ip);
232 ZFS_VERIFY_ZP(zp);
236 atomic_dec_32(&zp->z_sync_cnt);
238 if (!zfs_has_ctldir(zp) && zfsvfs->z_vscan && S_ISREG(ip->i_mode) &&
239 !(zp->z_pflags & ZFS_AV_QUARANTINED) && zp->z_size > 0)
255 update_pages(znode_t *zp, int64_t start, int len, objset_t *os)
257 struct inode *ip = ZTOI(zp);
274 (void) dmu_read(os, zp->z_id, start + off, nbytes,
304 mappedread(znode_t *zp, int nbytes, zfs_uio_t *uio)
306 struct inode *ip = ZTOI(zp);
335 error = dmu_read_uio_dbuf(sa_get_db(zp->z_sa_hdl),
353 * IN: zp - znode of file to be written to
365 * zp - ctime|mtime updated if byte count > 0
368 zfs_write_simple(znode_t *zp, const void *data, size_t len,
382 error = zfs_write(zp, &uio, 0, kcred);
396 zfs_zrele_async(znode_t *zp)
398 struct inode *ip = ZTOI(zp);
555 * zp - ctime|mtime always, atime if new
563 znode_t *zp;
618 zp = dzp;
622 /* possible igrab(zp) */
628 error = zfs_dirent_lock(&dl, dzp, name, &zp, zflg,
640 if (zp == NULL) {
710 zfs_mknode(dzp, vap, tx, cr, 0, &zp, &acl_ids);
712 error = zfs_link_create(dl, zp, tx, ZNEW);
718 zfs_znode_delete(zp, tx);
719 remove_inode_hash(ZTOI(zp));
731 zfs_log_create(zilog, tx, txtype, dzp, zp, name,
755 if (S_ISDIR(ZTOI(zp)->i_mode)) {
762 if (mode && (error = zfs_zaccess_rwx(zp, mode, aflags, cr))) {
773 if (S_ISREG(ZTOI(zp)->i_mode) &&
780 error = zfs_freesp(zp, 0, 0, mode, TRUE);
789 if (zp)
790 zrele(zp);
793 zfs_znode_update_vfs(zp);
794 *zpp = zp;
809 znode_t *zp = NULL, *dzp = ITOZ(dip);
899 zfs_mknode(dzp, vap, tx, cr, IS_TMPFILE, &zp, &acl_ids);
905 zp->z_unlinked = B_TRUE;
906 zfs_unlinked_add(zp, tx);
912 if (zp)
913 zrele(zp);
916 zfs_znode_update_vfs(zp);
917 *ipp = ZTOI(zp);
946 znode_t *zp;
984 if ((error = zfs_dirent_lock(&dl, dzp, name, &zp, zflg,
992 if ((error = zfs_zaccess_delete(dzp, zp, cr))) {
999 if (S_ISDIR(ZTOI(zp)->i_mode)) {
1004 mutex_enter(&zp->z_lock);
1005 may_delete_now = atomic_read(&ZTOI(zp)->i_count) == 1 &&
1006 !(zp->z_is_mapped);
1007 mutex_exit(&zp->z_lock);
1015 obj = zp->z_id;
1018 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
1019 zfs_sa_upgrade_txholds(tx, zp);
1022 toobig = zp->z_size > zp->z_blksz * zfs_delete_blocks;
1024 dmu_tx_hold_free(tx, zp->z_id, 0,
1029 error = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
1034 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
1038 mutex_enter(&zp->z_lock);
1039 if ((acl_obj = zfs_external_acl(zp)) != 0 && may_delete_now)
1041 mutex_exit(&zp->z_lock);
1058 zrele(zp);
1066 zrele(zp);
1076 error = zfs_link_destroy(dl, zp, tx, zflg, &unlinked);
1089 mutex_enter(&zp->z_lock);
1090 (void) sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
1093 atomic_read(&ZTOI(zp)->i_count) == 1 &&
1094 !(zp->z_is_mapped) && xattr_obj == xattr_obj_unlinked &&
1095 zfs_external_acl(zp) == acl_obj;
1111 if (zp->z_is_sa)
1112 error = sa_remove(zp->z_sa_hdl,
1115 error = sa_update(zp->z_sa_hdl,
1124 zfs_unlinked_add(zp, tx);
1125 mutex_exit(&zp->z_lock);
1127 mutex_exit(&zp->z_lock);
1128 zfs_unlinked_add(zp, tx);
1143 zfs_znode_update_vfs(zp);
1146 zrele(zp);
1148 zfs_zrele_async(zp);
1187 znode_t *zp;
1256 if ((error = zfs_dirent_lock(&dl, dzp, dirname, &zp, zf,
1312 zfs_mknode(dzp, vap, tx, cr, 0, &zp, &acl_ids);
1317 error = zfs_link_create(dl, zp, tx, ZNEW);
1319 zfs_znode_delete(zp, tx);
1320 remove_inode_hash(ZTOI(zp));
1327 *zpp = zp;
1332 zfs_log_create(zilog, tx, txtype, dzp, zp, dirname, vsecp,
1346 zrele(zp);
1349 zfs_znode_update_vfs(zp);
1376 znode_t *zp;
1395 zp = NULL;
1400 if ((error = zfs_dirent_lock(&dl, dzp, name, &zp, zflg,
1406 if ((error = zfs_zaccess_delete(dzp, zp, cr))) {
1410 if (!S_ISDIR(ZTOI(zp)->i_mode)) {
1415 if (zp == cwd) {
1424 rw_enter(&zp->z_name_lock, RW_WRITER);
1430 rw_enter(&zp->z_parent_lock, RW_WRITER);
1434 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
1436 zfs_sa_upgrade_txholds(tx, zp);
1441 rw_exit(&zp->z_parent_lock);
1442 rw_exit(&zp->z_name_lock);
1448 zrele(zp);
1452 zrele(zp);
1457 error = zfs_link_destroy(dl, zp, tx, zflg, NULL);
1469 rw_exit(&zp->z_parent_lock);
1470 rw_exit(&zp->z_name_lock);
1475 zfs_znode_update_vfs(zp);
1476 zrele(zp);
1508 znode_t *zp = ITOZ(ip);
1521 ZFS_VERIFY_ZP(zp);
1523 if ((error = sa_lookup(zp->z_sa_hdl, SA_ZPL_PARENT(zfsvfs),
1530 if (zp->z_unlinked)
1536 prefetch = zp->z_zn_prefetch;
1545 zap_cursor_init(&zc, os, zp->z_id);
1550 zap_cursor_init_serialized(&zc, os, zp->z_id, offset);
1564 objnum = zp->z_id;
1571 } else if (offset == 2 && zfs_show_ctldir(zp)) {
1599 (u_longlong_t)zp->z_id,
1625 if (offset > 2 || (offset == 2 && !zfs_show_ctldir(zp))) {
1633 zp->z_zn_prefetch = B_FALSE; /* a lookup will re-enable pre-fetching */
1662 znode_t *zp = ITOZ(ip);
1668 ZFS_VERIFY_ZP(zp);
1670 mutex_enter(&zp->z_lock);
1676 if ((zp->z_id == zfsvfs->z_root) && zfs_show_ctldir(zp))
1680 sa_object_size(zp->z_sa_hdl, &blksize, &nblocks);
1684 if (unlikely(zp->z_blksz == 0)) {
1691 mutex_exit(&zp->z_lock);
1729 znode_t *zp = NULL;
1744 err = zfs_dirent_lock(&dl, dzp, (char *)zap.za_name, &zp,
1751 xip = ZTOI(zp);
1754 zp->z_projid == dzp->z_projid)
1758 if (!(zp->z_pflags & ZFS_PROJID))
1759 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
1761 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
1783 if (zp->z_projid != dzp->z_projid) {
1784 if (!(zp->z_pflags & ZFS_PROJID)) {
1785 zp->z_pflags |= ZFS_PROJID;
1787 SA_ZPL_FLAGS(zfsvfs), NULL, &zp->z_pflags,
1788 sizeof (zp->z_pflags));
1791 zp->z_projid = dzp->z_projid;
1793 NULL, &zp->z_projid, sizeof (zp->z_projid));
1799 err = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
1809 if (zp) {
1810 zrele(zp);
1811 zp = NULL;
1819 if (zp) {
1820 zrele(zp);
1832 * IN: zp - znode of file to be modified.
1847 zfs_setattr(znode_t *zp, vattr_t *vap, int flags, cred_t *cr)
1850 zfsvfs_t *zfsvfs = ZTOZSB(zp);
1881 ZFS_VERIFY_ZP(zp);
1882 ip = ZTOI(zp);
1903 if (projid == zp->z_projid && zp->z_pflags & ZFS_PROJID)
1911 ((zp->z_pflags & ZFS_PROJINHERIT) != 0)) &&
1953 if ((zp->z_pflags & ZFS_IMMUTABLE) &&
1960 if ((mask & ATTR_SIZE) && (zp->z_pflags & ZFS_READONLY)) {
1996 err = zfs_zaccess(zp, ACE_WRITE_DATA, 0, skipaclchk, cr);
2007 err = zfs_freesp(zp, vap->va_size, 0, 0, FALSE);
2020 need_policy = zfs_zaccess(zp, ACE_WRITE_ATTRIBUTES, 0,
2035 vap->va_mode = zp->z_mode;
2058 if (zfs_zaccess(zp, ACE_WRITE_OWNER, 0,
2073 mutex_enter(&zp->z_lock);
2074 oldva.va_mode = zp->z_mode;
2075 zfs_fuid_map_ids(zp, cr, &oldva.va_uid, &oldva.va_gid);
2086 ((zp->z_pflags & ZFS_APPENDONLY) != 0)) {
2096 ((zp->z_pflags & ZFS_PROJINHERIT) != 0)) {
2106 ((zp->z_pflags & ZFS_NOUNLINK) != 0)) {
2116 ((zp->z_pflags & ZFS_IMMUTABLE) != 0)) {
2126 ((zp->z_pflags & ZFS_NODUMP) != 0)) {
2136 ((zp->z_pflags & ZFS_AV_MODIFIED) != 0)) {
2148 ((zp->z_pflags & ZFS_AV_QUARANTINED) != 0)) {
2157 mutex_exit(&zp->z_lock);
2169 mutex_exit(&zp->z_lock);
2172 if (zfs_zaccess(zp, ACE_WRITE_ACL, 0, skipaclchk, cr) == 0) {
2198 (int (*)(void *, int, cred_t *))zfs_zaccess_unix, zp);
2214 err = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
2218 err = zfs_zget(ZTOZSB(zp), xattr_obj, &attrzp);
2225 if (new_kuid != KUID_TO_SUID(ZTOI(zp)->i_uid) &&
2238 if (new_kgid != KGID_TO_SGID(ZTOI(zp)->i_gid) &&
2259 uint64_t pmode = zp->z_mode;
2263 if (ZTOZSB(zp)->z_acl_mode == ZFS_ACL_RESTRICTED &&
2264 !(zp->z_pflags & ZFS_ACL_TRIVIAL)) {
2269 if ((err = zfs_acl_chmod_setattr(zp, &aclp, new_mode)))
2272 mutex_enter(&zp->z_lock);
2273 if (!zp->z_is_sa && ((acl_obj = zfs_external_acl(zp)) != 0)) {
2279 zfs_znode_acl_version(zp) ==
2289 } else if (!zp->z_is_sa && aclp->z_acl_bytes > ZFS_ACE_SPACE) {
2293 mutex_exit(&zp->z_lock);
2294 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
2299 !(zp->z_pflags & ZFS_PROJID)))
2300 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
2302 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
2313 zfs_sa_upgrade_txholds(tx, zp);
2328 if (projid != ZFS_INVALID_PROJID && !(zp->z_pflags & ZFS_PROJID)) {
2339 err = sa_add_projid(zp->z_sa_hdl, tx, projid);
2350 mutex_enter(&zp->z_acl_lock);
2351 mutex_enter(&zp->z_lock);
2354 &zp->z_pflags, sizeof (zp->z_pflags));
2374 ZTOI(zp)->i_uid = SUID_TO_KUID(new_kuid);
2375 new_uid = zfs_uid_read(ZTOI(zp));
2387 ZTOI(zp)->i_gid = SGID_TO_KGID(new_kgid);
2388 new_gid = zfs_gid_read(ZTOI(zp));
2401 new_mode = zp->z_mode;
2403 err = zfs_acl_chown_setattr(zp);
2414 zp->z_mode = ZTOI(zp)->i_mode = new_mode;
2416 err = zfs_aclset_common(zp, aclp, cr, tx);
2418 if (zp->z_acl_cached)
2419 zfs_acl_free(zp->z_acl_cached);
2420 zp->z_acl_cached = aclp;
2424 if ((mask & ATTR_ATIME) || zp->z_atime_dirty) {
2425 zp->z_atime_dirty = B_FALSE;
2433 ZTOI(zp)->i_mtime = zpl_inode_timestamp_truncate(
2434 vap->va_mtime, ZTOI(zp));
2442 ZTOI(zp)->i_ctime = zpl_inode_timestamp_truncate(vap->va_ctime,
2443 ZTOI(zp));
2449 zp->z_projid = projid;
2451 SA_ZPL_PROJID(zfsvfs), NULL, &zp->z_projid,
2452 sizeof (zp->z_projid));
2498 zfs_xvattr_set(zp, xvap, tx);
2505 zfs_log_setattr(zilog, tx, TX_SETATTR, zp, vap, mask, fuidp);
2507 mutex_exit(&zp->z_lock);
2509 mutex_exit(&zp->z_acl_lock);
2539 err2 = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
2546 zfs_znode_update_vfs(zp);
2594 znode_t *zp = tdzp;
2595 uint64_t rootid = ZTOZSB(zp)->z_root;
2596 uint64_t oidp = zp->z_id;
2601 * First pass write-locks szp and compares to zp->z_id.
2602 * Later passes read-lock zp and compare to zp->z_parent.
2611 if (rw == RW_READER && zp->z_id > szp->z_id) {
2617 zp = tdzp;
2618 oidp = zp->z_id;
2643 int error = zfs_zget(ZTOZSB(zp), oidp, &zp);
2646 zl->zl_znode = zp;
2648 (void) sa_lookup(zp->z_sa_hdl, SA_ZPL_PARENT(ZTOZSB(zp)),
2650 rwlp = &zp->z_parent_lock;
2653 } while (zp->z_id != sdzp->z_id);
3047 znode_t *zp;
3093 error = zfs_dirent_lock(&dl, dzp, name, &zp, zflg, NULL, NULL);
3145 zfs_mknode(dzp, vap, tx, cr, 0, &zp, &acl_ids);
3150 mutex_enter(&zp->z_lock);
3151 if (zp->z_is_sa)
3152 error = sa_update(zp->z_sa_hdl, SA_ZPL_SYMLINK(zfsvfs),
3155 zfs_sa_symlink(zp, link, len, tx);
3156 mutex_exit(&zp->z_lock);
3158 zp->z_size = len;
3159 (void) sa_update(zp->z_sa_hdl, SA_ZPL_SIZE(zfsvfs),
3160 &zp->z_size, sizeof (zp->z_size), tx);
3164 error = zfs_link_create(dl, zp, tx, ZNEW);
3166 zfs_znode_delete(zp, tx);
3167 remove_inode_hash(ZTOI(zp));
3171 zfs_log_symlink(zilog, tx, txtype, dzp, zp, name, link);
3174 zfs_znode_update_vfs(zp);
3184 *zpp = zp;
3189 zrele(zp);
3214 znode_t *zp = ITOZ(ip);
3219 ZFS_VERIFY_ZP(zp);
3221 mutex_enter(&zp->z_lock);
3222 if (zp->z_is_sa)
3223 error = sa_lookup_uio(zp->z_sa_hdl,
3226 error = zfs_sa_readlink(zp, uio);
3227 mutex_exit(&zp->z_lock);
3456 znode_t *zp = ITOZ(ip);
3470 ZFS_VERIFY_ZP(zp);
3500 (zp->z_projid != ZFS_DEFAULT_PROJID &&
3502 zp->z_projid))) {
3534 zfs_locked_range_t *lr = zfs_rangelock_enter(&zp->z_rangelock,
3577 dmu_tx_hold_write(tx, zp->z_id, pgoff, pglen);
3578 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
3579 zfs_sa_upgrade_txholds(tx, zp);
3597 dmu_write(zfsvfs->z_os, zp->z_id, pgoff, pglen, va, tx);
3603 &zp->z_pflags, 8);
3608 zp->z_atime_dirty = B_FALSE;
3609 zp->z_seq++;
3611 err = sa_bulk_update(zp->z_sa_hdl, bulk, cnt, tx);
3613 zfs_log_write(zfsvfs->z_log, tx, TX_WRITE, zp, pgoff, pglen, 0,
3625 zil_commit(zfsvfs->z_log, zp->z_id);
3639 znode_t *zp = ITOZ(ip);
3651 ZFS_VERIFY_ZP(zp);
3662 zp->z_atime_dirty = B_TRUE;
3669 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
3670 zfs_sa_upgrade_txholds(tx, zp);
3678 mutex_enter(&zp->z_lock);
3679 zp->z_atime_dirty = B_FALSE;
3692 zp->z_mode = mode;
3694 error = sa_bulk_update(zp->z_sa_hdl, bulk, cnt, tx);
3695 mutex_exit(&zp->z_lock);
3707 znode_t *zp = ITOZ(ip);
3718 if (zp->z_sa_hdl == NULL) {
3724 if (zp->z_atime_dirty && zp->z_unlinked == B_FALSE) {
3727 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
3728 zfs_sa_upgrade_txholds(tx, zp);
3734 mutex_enter(&zp->z_lock);
3735 (void) sa_update(zp->z_sa_hdl, SA_ZPL_ATIME(zfsvfs),
3737 zp->z_atime_dirty = B_FALSE;
3738 mutex_exit(&zp->z_lock);
3743 zfs_zinactive(zp);
3754 znode_t *zp = ITOZ(ip);
3781 err = dmu_read(os, zp->z_id, io_off, PAGESIZE, va,
3811 znode_t *zp = ITOZ(ip);
3819 ZFS_VERIFY_ZP(zp);
3844 znode_t *zp = ITOZ(ip);
3848 ZFS_VERIFY_ZP(zp);
3850 if ((vm_flags & VM_WRITE) && (zp->z_pflags &
3857 (zp->z_pflags & ZFS_AV_QUARANTINED)) {
3877 * IN: zp - znode of file to free data in.
3887 * zp - ctime|mtime updated
3891 zfs_space(znode_t *zp, int cmd, flock64_t *bfp, int flag,
3894 zfsvfs_t *zfsvfs = ZTOZSB(zp);
3899 ZFS_VERIFY_ZP(zp);
3926 if ((error = zfs_zaccess(zp, ACE_WRITE_DATA, 0, B_FALSE, cr))) {
3934 error = zfs_freesp(zp, off, len, flag, TRUE);
3944 znode_t *zp = ITOZ(ip);
3948 uint64_t object = zp->z_id;
3960 ZFS_VERIFY_ZP(zp);
3962 if ((error = sa_lookup(zp->z_sa_hdl, SA_ZPL_GEN(zfsvfs),