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

Lines Matching refs:zp

115 	znode_t *zp = arg;
122 new->lr_offset = zp->z_size;
129 uint64_t end_size = MAX(zp->z_size, new->lr_offset + new->lr_length);
130 if (end_size > zp->z_blksz && (!ISP2(zp->z_blksz) ||
131 zp->z_blksz < ZTOZSB(zp)->z_max_blksz)) {
140 znode_t *zp = buf;
142 POINTER_INVALIDATE(&zp->z_zfsvfs);
144 list_link_init(&zp->z_link_node);
146 mutex_init(&zp->z_lock, NULL, MUTEX_DEFAULT, NULL);
147 mutex_init(&zp->z_acl_lock, NULL, MUTEX_DEFAULT, NULL);
149 zfs_rangelock_init(&zp->z_rangelock, zfs_rangelock_cb, zp);
151 zp->z_acl_cached = NULL;
152 zp->z_vnode = NULL;
160 znode_t *zp = buf;
162 ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs));
163 ASSERT3P(zp->z_vnode, ==, NULL);
164 ASSERT(!list_link_active(&zp->z_link_node));
165 mutex_destroy(&zp->z_lock);
166 mutex_destroy(&zp->z_acl_lock);
167 zfs_rangelock_fini(&zp->z_rangelock);
169 ASSERT(zp->z_acl_cached == NULL);
212 zfs_znode_free_kmem(znode_t *zp)
215 uma_zfree_smr(znode_uma_zone, zp);
238 zfs_znode_free_kmem(znode_t *zp)
241 kmem_cache_free(znode_cache, zp);
271 znode_t *zp;
289 zfs_mknode(sharezp, &vattr, tx, kcred, IS_ROOT_NODE, &zp, &acl_ids);
290 ASSERT3P(zp, ==, sharezp);
344 zfs_znode_sa_init(zfsvfs_t *zfsvfs, znode_t *zp,
347 ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs) || (zfsvfs == zp->z_zfsvfs));
348 ASSERT(MUTEX_HELD(ZFS_OBJ_MUTEX(zfsvfs, zp->z_id)));
350 ASSERT(zp->z_sa_hdl == NULL);
351 ASSERT(zp->z_acl_cached == NULL);
353 VERIFY(0 == sa_handle_get_from_db(zfsvfs->z_os, db, zp,
354 SA_HDL_SHARED, &zp->z_sa_hdl));
356 zp->z_sa_hdl = sa_hdl;
357 sa_set_userp(sa_hdl, zp);
360 zp->z_is_sa = (obj_type == DMU_OT_SA) ? B_TRUE : B_FALSE;
366 if (zp->z_id == zfsvfs->z_root && zfsvfs->z_parent == zfsvfs)
367 ZTOV(zp)->v_flag |= VROOT;
369 vn_exists(ZTOV(zp));
373 zfs_znode_dmu_fini(znode_t *zp)
375 ASSERT(MUTEX_HELD(ZFS_OBJ_MUTEX(zp->z_zfsvfs, zp->z_id)) ||
376 zp->z_unlinked ||
377 ZFS_TEARDOWN_INACTIVE_WRITE_HELD(zp->z_zfsvfs));
379 sa_handle_destroy(zp->z_sa_hdl);
380 zp->z_sa_hdl = NULL;
405 znode_t *zp;
417 zp = zfs_znode_alloc_kmem(KM_SLEEP);
433 zfs_znode_free_kmem(zp);
436 zp->z_vnode = vp;
437 vp->v_data = zp;
439 ASSERT(!POINTER_IS_VALID(zp->z_zfsvfs));
441 zp->z_sa_hdl = NULL;
442 zp->z_unlinked = 0;
443 zp->z_atime_dirty = 0;
444 zp->z_mapcnt = 0;
445 zp->z_id = db->db_object;
446 zp->z_blksz = blksz;
447 zp->z_seq = 0x7A4653;
448 zp->z_sync_cnt = 0;
450 atomic_store_ptr(&zp->z_cached_symlink, NULL);
453 vp = ZTOV(zp);
455 zfs_znode_sa_init(zfsvfs, zp, db, obj_type, hdl);
458 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_GEN(zfsvfs), NULL, &zp->z_gen, 8);
460 &zp->z_size, 8);
462 &zp->z_links, 8);
464 &zp->z_pflags, 8);
467 &zp->z_atime, 16);
475 &zp->z_uid, 8);
477 &zp->z_gid, 8);
479 if (sa_bulk_lookup(zp->z_sa_hdl, bulk, count) != 0 || zp->z_gen == 0 ||
481 (zp->z_pflags & ZFS_PROJID) &&
482 sa_lookup(zp->z_sa_hdl, SA_ZPL_PROJID(zfsvfs), &projid, 8) != 0)) {
484 sa_handle_destroy(zp->z_sa_hdl);
486 zp->z_vnode = NULL;
487 zfs_znode_free_kmem(zp);
491 zp->z_projid = projid;
492 zp->z_mode = mode;
495 if (zp->z_pflags & ZFS_XATTR)
496 zp->z_xattr_parent = parent;
502 zp->z_zn_prefetch = B_TRUE; /* z_prefetch default is enabled */
509 ASSERT(zp->z_uid == 0 && zp->z_gid == 0);
518 list_insert_tail(&zfsvfs->z_all_znodes, zp);
520 zp->z_zfsvfs = zfsvfs;
531 return (zp);
822 zfs_xvattr_set(znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx)
829 ASSERT_VOP_IN_SEQC(ZTOV(zp));
834 (void) sa_update(zp->z_sa_hdl, SA_ZPL_CRTIME(zp->z_zfsvfs),
839 ZFS_ATTR_SET(zp, ZFS_READONLY, xoap->xoa_readonly,
840 zp->z_pflags, tx);
844 ZFS_ATTR_SET(zp, ZFS_HIDDEN, xoap->xoa_hidden,
845 zp->z_pflags, tx);
849 ZFS_ATTR_SET(zp, ZFS_SYSTEM, xoap->xoa_system,
850 zp->z_pflags, tx);
854 ZFS_ATTR_SET(zp, ZFS_ARCHIVE, xoap->xoa_archive,
855 zp->z_pflags, tx);
859 ZFS_ATTR_SET(zp, ZFS_IMMUTABLE, xoap->xoa_immutable,
860 zp->z_pflags, tx);
864 ZFS_ATTR_SET(zp, ZFS_NOUNLINK, xoap->xoa_nounlink,
865 zp->z_pflags, tx);
869 ZFS_ATTR_SET(zp, ZFS_APPENDONLY, xoap->xoa_appendonly,
870 zp->z_pflags, tx);
874 ZFS_ATTR_SET(zp, ZFS_NODUMP, xoap->xoa_nodump,
875 zp->z_pflags, tx);
879 ZFS_ATTR_SET(zp, ZFS_OPAQUE, xoap->xoa_opaque,
880 zp->z_pflags, tx);
884 ZFS_ATTR_SET(zp, ZFS_AV_QUARANTINED,
885 xoap->xoa_av_quarantined, zp->z_pflags, tx);
889 ZFS_ATTR_SET(zp, ZFS_AV_MODIFIED, xoap->xoa_av_modified,
890 zp->z_pflags, tx);
894 zfs_sa_set_scanstamp(zp, xvap, tx);
898 ZFS_ATTR_SET(zp, ZFS_REPARSE, xoap->xoa_reparse,
899 zp->z_pflags, tx);
903 ZFS_ATTR_SET(zp, ZFS_OFFLINE, xoap->xoa_offline,
904 zp->z_pflags, tx);
908 ZFS_ATTR_SET(zp, ZFS_SPARSE, xoap->xoa_sparse,
909 zp->z_pflags, tx);
919 znode_t *zp;
952 zp = sa_get_userdata(hdl);
959 ASSERT3P(zp, !=, NULL);
960 ASSERT3U(zp->z_id, ==, obj_num);
961 if (zp->z_unlinked) {
964 vp = ZTOV(zp);
970 *zpp = zp;
1027 zp = zfs_znode_alloc(zfsvfs, db, doi.doi_data_block_size,
1029 if (zp == NULL) {
1032 *zpp = zp;
1035 vnode_t *vp = ZTOV(zp);
1042 zp->z_vnode = NULL;
1043 zfs_znode_dmu_fini(zp);
1044 zfs_znode_free(zp);
1054 zfs_rezget(znode_t *zp)
1056 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1060 uint64_t obj_num = zp->z_id;
1074 vp = ZTOV(zp);
1079 mutex_enter(&zp->z_acl_lock);
1080 if (zp->z_acl_cached) {
1081 zfs_acl_free(zp->z_acl_cached);
1082 zp->z_acl_cached = NULL;
1085 mutex_exit(&zp->z_acl_lock);
1086 ASSERT(zp->z_sa_hdl == NULL);
1103 zfs_znode_sa_init(zfsvfs, zp, db, doi.doi_bonus_type, NULL);
1104 size = zp->z_size;
1110 &zp->z_size, sizeof (zp->z_size));
1112 &zp->z_links, sizeof (zp->z_links));
1114 &zp->z_pflags, sizeof (zp->z_pflags));
1116 &zp->z_atime, sizeof (zp->z_atime));
1118 &zp->z_uid, sizeof (zp->z_uid));
1120 &zp->z_gid, sizeof (zp->z_gid));
1124 if (sa_bulk_lookup(zp->z_sa_hdl, bulk, count)) {
1125 zfs_znode_dmu_fini(zp);
1130 zp->z_mode = mode;
1132 if (gen != zp->z_gen) {
1133 zfs_znode_dmu_fini(zp);
1156 if (vp->v_type != IFTOVT((mode_t)zp->z_mode)) {
1157 zfs_znode_dmu_fini(zp);
1171 zp->z_unlinked = (zp->z_links == 0);
1172 if (zp->z_unlinked) {
1173 zfs_znode_dmu_fini(zp);
1178 zp->z_blksz = doi.doi_data_block_size;
1179 if (zp->z_size != size)
1180 vnode_pager_setsize(vp, zp->z_size);
1188 zfs_znode_delete(znode_t *zp, dmu_tx_t *tx)
1190 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1192 uint64_t obj = zp->z_id;
1193 uint64_t acl_obj = zfs_external_acl(zp);
1197 VERIFY(!zp->z_is_sa);
1201 zfs_znode_dmu_fini(zp);
1203 zfs_znode_free(zp);
1207 zfs_zinactive(znode_t *zp)
1209 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1210 uint64_t z_id = zp->z_id;
1212 ASSERT(zp->z_sa_hdl);
1227 if (zp->z_unlinked) {
1231 zfs_rmnode(zp);
1236 zfs_znode_dmu_fini(zp);
1238 zfs_znode_free(zp);
1242 zfs_znode_free(znode_t *zp)
1244 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1249 ASSERT(zp->z_sa_hdl == NULL);
1250 zp->z_vnode = NULL;
1252 POINTER_INVALIDATE(&zp->z_zfsvfs);
1253 list_remove(&zfsvfs->z_all_znodes, zp);
1256 symlink = atomic_load_ptr(&zp->z_cached_symlink);
1258 atomic_store_rel_ptr((uintptr_t *)&zp->z_cached_symlink, (uintptr_t)NULL);
1263 symlink = atomic_load_ptr(&zp->z_cached_symlink);
1265 atomic_store_rel_ptr((uintptr_t *)&zp->z_cached_symlink,
1271 if (zp->z_acl_cached) {
1272 zfs_acl_free(zp->z_acl_cached);
1273 zp->z_acl_cached = NULL;
1276 zfs_znode_free_kmem(zp);
1280 zfs_tstamp_update_setup_ext(znode_t *zp, uint_t flag, uint64_t mtime[2],
1288 zp->z_atime_dirty = 0;
1289 zp->z_seq++;
1291 zp->z_atime_dirty = 1;
1295 ZFS_TIME_ENCODE(&now, zp->z_atime);
1300 if (zp->z_zfsvfs->z_use_fuids) {
1301 zp->z_pflags |= (ZFS_ARCHIVE |
1308 if (zp->z_zfsvfs->z_use_fuids)
1309 zp->z_pflags |= ZFS_ARCHIVE;
1315 zfs_tstamp_update_setup(znode_t *zp, uint_t flag, uint64_t mtime[2],
1318 zfs_tstamp_update_setup_ext(zp, flag, mtime, ctime, B_TRUE);
1323 * IN: zp - znode of file to free data in.
1330 zfs_grow_blocksize(znode_t *zp, uint64_t size, dmu_tx_t *tx)
1335 if (size <= zp->z_blksz)
1342 if (zp->z_blksz && zp->z_size > zp->z_blksz)
1345 error = dmu_object_set_blocksize(zp->z_zfsvfs->z_os, zp->z_id,
1353 dmu_object_size_from_db(sa_get_db(zp->z_sa_hdl), &zp->z_blksz, &dummy);
1359 * IN: zp - znode of file to free data in.
1365 zfs_extend(znode_t *zp, uint64_t end)
1367 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1376 lr = zfs_rangelock_enter(&zp->z_rangelock, 0, UINT64_MAX, RL_WRITER);
1381 if (end <= zp->z_size) {
1386 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
1387 zfs_sa_upgrade_txholds(tx, zp);
1388 if (end > zp->z_blksz &&
1389 (!ISP2(zp->z_blksz) || zp->z_blksz < zfsvfs->z_max_blksz)) {
1393 if (zp->z_blksz > zp->z_zfsvfs->z_max_blksz) {
1399 ASSERT(!ISP2(zp->z_blksz));
1400 newblksz = MIN(end, 1 << highbit64(zp->z_blksz));
1402 newblksz = MIN(end, zp->z_zfsvfs->z_max_blksz);
1404 dmu_tx_hold_write(tx, zp->z_id, 0, newblksz);
1417 zfs_grow_blocksize(zp, newblksz, tx);
1419 zp->z_size = end;
1421 VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_SIZE(zp->z_zfsvfs),
1422 &zp->z_size, sizeof (zp->z_size), tx));
1424 vnode_pager_setsize(ZTOV(zp), end);
1436 * IN: zp - znode of file to free data in.
1443 zfs_free_range(znode_t *zp, uint64_t off, uint64_t len)
1445 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1452 lr = zfs_rangelock_enter(&zp->z_rangelock, off, len, RL_WRITER);
1457 if (off >= zp->z_size) {
1462 if (off + len > zp->z_size)
1463 len = zp->z_size - off;
1465 error = dmu_free_long_range(zfsvfs->z_os, zp->z_id, off, len);
1473 vnode_pager_setsize(ZTOV(zp), off);
1484 * IN: zp - znode of file to free data in.
1490 zfs_trunc(znode_t *zp, uint64_t end)
1492 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1493 vnode_t *vp = ZTOV(zp);
1503 lr = zfs_rangelock_enter(&zp->z_rangelock, 0, UINT64_MAX, RL_WRITER);
1508 if (end >= zp->z_size) {
1513 error = dmu_free_long_range(zfsvfs->z_os, zp->z_id, end,
1520 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
1521 zfs_sa_upgrade_txholds(tx, zp);
1530 zp->z_size = end;
1532 NULL, &zp->z_size, sizeof (zp->z_size));
1535 zp->z_pflags &= ~ZFS_SPARSE;
1537 NULL, &zp->z_pflags, 8);
1539 VERIFY(sa_bulk_update(zp->z_sa_hdl, bulk, count, tx) == 0);
1559 * IN: zp - znode of file to free data in.
1568 zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
1571 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
1579 if ((error = sa_lookup(zp->z_sa_hdl, SA_ZPL_MODE(zfsvfs), &mode,
1583 if (off > zp->z_size) {
1584 error = zfs_extend(zp, off+len);
1592 error = zfs_trunc(zp, off);
1594 if ((error = zfs_free_range(zp, off, len)) == 0 &&
1595 off + len > zp->z_size)
1596 error = zfs_extend(zp, off+len);
1602 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE);
1603 zfs_sa_upgrade_txholds(tx, zp);
1613 NULL, &zp->z_pflags, 8);
1614 zfs_tstamp_update_setup(zp, CONTENT_MODIFIED, mtime, ctime);
1615 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
1618 zfs_log_truncate(zilog, tx, TX_TRUNCATE, zp, off, len);
1636 znode_t *zp;
1747 zfs_mknode(rootzp, &vattr, tx, cr, IS_ROOT_NODE, &zp, &acl_ids);
1748 ASSERT3P(zp, ==, rootzp);
2040 zfs_znode_update_vfs(znode_t *zp)
2044 if ((object = ZTOV(zp)->v_object) == NULL ||
2045 zp->z_size == object->un_pager.vnp.vnp_size)
2048 vnode_pager_setsize(ZTOV(zp), zp->z_size);
2054 zfs_znode_parent_and_name(znode_t *zp, znode_t **dzpp, char *buf)
2056 zfsvfs_t *zfsvfs = zp->z_zfsvfs;
2062 if ((zp->z_pflags & ZFS_XATTR) != 0)
2065 err = zfs_obj_to_pobj(zfsvfs->z_os, zp->z_sa_hdl, zfsvfs->z_attr_table,
2072 if (parent == zp->z_id)
2075 err = zap_value_search(zfsvfs->z_os, parent, zp->z_id,