Lines Matching refs:zp

401 	znode_t *zp;  in zfs_dirlook()  local
425 error = zfs_zget(zfsvfs, parent, &zp); in zfs_dirlook()
427 *vpp = ZTOV(zp); in zfs_dirlook()
438 error = zfs_dirent_lock(&dl, dzp, name, &zp, zf, deflg, rpnp); in zfs_dirlook()
440 *vpp = ZTOV(zp); in zfs_dirlook()
468 zfs_unlinked_add(znode_t *zp, dmu_tx_t *tx) in zfs_unlinked_add() argument
470 zfsvfs_t *zfsvfs = zp->z_zfsvfs; in zfs_unlinked_add()
472 ASSERT(zp->z_unlinked); in zfs_unlinked_add()
473 ASSERT(zp->z_links == 0); in zfs_unlinked_add()
476 zap_add_int(zfsvfs->z_os, zfsvfs->z_unlinkedobj, zp->z_id, tx)); in zfs_unlinked_add()
490 znode_t *zp; in zfs_unlinked_drain_task() local
517 error = zfs_zget(zfsvfs, zap.za_first_integer, &zp); in zfs_unlinked_drain_task()
528 zp->z_unlinked = B_TRUE; in zfs_unlinked_drain_task()
530 VN_RELE(ZTOV(zp)); in zfs_unlinked_drain_task()
646 zfs_rmnode(znode_t *zp) in zfs_rmnode() argument
648 zfsvfs_t *zfsvfs = zp->z_zfsvfs; in zfs_rmnode()
656 ASSERT(zp->z_links == 0); in zfs_rmnode()
657 ASSERT(ZTOV(zp)->v_count == 0); in zfs_rmnode()
662 if (ZTOV(zp)->v_type == VDIR && (zp->z_pflags & ZFS_XATTR)) { in zfs_rmnode()
663 if (zfs_purgedir(zp) != 0) { in zfs_rmnode()
668 zfs_znode_dmu_fini(zp); in zfs_rmnode()
669 zfs_znode_free(zp); in zfs_rmnode()
681 error = dmu_free_long_range(os, zp->z_id, 0, DMU_OBJECT_END); in zfs_rmnode()
687 zfs_znode_dmu_fini(zp); in zfs_rmnode()
688 zfs_znode_free(zp); in zfs_rmnode()
697 error = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs), in zfs_rmnode()
704 acl_obj = zfs_external_acl(zp); in zfs_rmnode()
710 dmu_tx_hold_free(tx, zp->z_id, 0, DMU_OBJECT_END); in zfs_rmnode()
719 zfs_sa_upgrade_txholds(tx, zp); in zfs_rmnode()
729 zfs_znode_dmu_fini(zp); in zfs_rmnode()
730 zfs_znode_free(zp); in zfs_rmnode()
747 zap_remove_int(zfsvfs->z_os, zfsvfs->z_unlinkedobj, zp->z_id, tx)); in zfs_rmnode()
749 zfs_znode_delete(zp, tx); in zfs_rmnode()
758 zfs_dirent(znode_t *zp, uint64_t mode) in zfs_dirent() argument
760 uint64_t de = zp->z_id; in zfs_dirent()
762 if (zp->z_zfsvfs->z_version >= ZPL_VERSION_DIRENT_TYPE) in zfs_dirent()
771 zfs_link_create(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag) in zfs_link_create() argument
774 zfsvfs_t *zfsvfs = zp->z_zfsvfs; in zfs_link_create()
775 vnode_t *vp = ZTOV(zp); in zfs_link_create()
783 mutex_enter(&zp->z_lock); in zfs_link_create()
786 if (zp->z_unlinked) { /* no new links to unlinked zp */ in zfs_link_create()
788 mutex_exit(&zp->z_lock); in zfs_link_create()
791 zp->z_links++; in zfs_link_create()
793 &zp->z_links, sizeof (zp->z_links)); in zfs_link_create()
799 &zp->z_pflags, sizeof (zp->z_pflags)); in zfs_link_create()
804 zfs_tstamp_update_setup(zp, STATE_CHANGED, mtime, in zfs_link_create()
807 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx); in zfs_link_create()
810 mutex_exit(&zp->z_lock); in zfs_link_create()
831 value = zfs_dirent(zp, zp->z_mode); in zfs_link_create()
832 error = zap_add(zp->z_zfsvfs->z_os, dzp->z_id, dl->dl_name, in zfs_link_create()
864 zfs_dropname(zfs_dirlock_t *dl, znode_t *zp, znode_t *dzp, dmu_tx_t *tx, in zfs_dropname() argument
869 if (zp->z_zfsvfs->z_norm) { in zfs_dropname()
872 if ((zp->z_zfsvfs->z_case == ZFS_CASE_INSENSITIVE && in zfs_dropname()
874 (zp->z_zfsvfs->z_case == ZFS_CASE_MIXED && in zfs_dropname()
879 error = zap_remove_norm(zp->z_zfsvfs->z_os, dzp->z_id, in zfs_dropname()
882 error = zap_remove(zp->z_zfsvfs->z_os, dzp->z_id, dl->dl_name, in zfs_dropname()
897 zfs_link_destroy(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag, in zfs_link_destroy() argument
902 vnode_t *vp = ZTOV(zp); in zfs_link_destroy()
921 mutex_enter(&zp->z_lock); in zfs_link_destroy()
923 if (zp_is_dir && !zfs_dirempty(zp)) { in zfs_link_destroy()
924 mutex_exit(&zp->z_lock); in zfs_link_destroy()
934 error = zfs_dropname(dl, zp, dzp, tx, flag); in zfs_link_destroy()
936 mutex_exit(&zp->z_lock); in zfs_link_destroy()
941 if (zp->z_links <= zp_is_dir) { in zfs_link_destroy()
944 zp->z_vnode->v_path != vn_vpath_empty ? in zfs_link_destroy()
945 zp->z_vnode->v_path : "<unknown>", in zfs_link_destroy()
946 (int)zp->z_links, zp_is_dir + 1); in zfs_link_destroy()
947 zp->z_links = zp_is_dir + 1; in zfs_link_destroy()
949 if (--zp->z_links == zp_is_dir) { in zfs_link_destroy()
950 zp->z_unlinked = B_TRUE; in zfs_link_destroy()
951 zp->z_links = 0; in zfs_link_destroy()
957 NULL, &zp->z_pflags, sizeof (zp->z_pflags)); in zfs_link_destroy()
958 zfs_tstamp_update_setup(zp, STATE_CHANGED, mtime, ctime, in zfs_link_destroy()
962 NULL, &zp->z_links, sizeof (zp->z_links)); in zfs_link_destroy()
963 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx); in zfs_link_destroy()
966 mutex_exit(&zp->z_lock); in zfs_link_destroy()
969 error = zfs_dropname(dl, zp, dzp, tx, flag); in zfs_link_destroy()
995 zfs_unlinked_add(zp, tx); in zfs_link_destroy()
1012 zfs_make_xattrdir(znode_t *zp, vattr_t *vap, vnode_t **xvpp, cred_t *cr) in zfs_make_xattrdir() argument
1014 zfsvfs_t *zfsvfs = zp->z_zfsvfs; in zfs_make_xattrdir()
1024 if (error = zfs_zaccess(zp, ACE_WRITE_NAMED_ATTRS, 0, B_FALSE, cr)) in zfs_make_xattrdir()
1027 if ((error = zfs_acl_ids_create(zp, IS_XATTR, vap, cr, NULL, in zfs_make_xattrdir()
1030 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, zp->z_projid)) { in zfs_make_xattrdir()
1038 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE); in zfs_make_xattrdir()
1049 zfs_mknode(zp, vap, tx, cr, IS_XATTR, &xzp, &acl_ids); in zfs_make_xattrdir()
1057 ASSERT(error == 0 && parent == zp->z_id); in zfs_make_xattrdir()
1060 VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs), &xzp->z_id, in zfs_make_xattrdir()
1063 (void) zfs_log_create(zfsvfs->z_log, tx, TX_MKXATTR, zp, in zfs_make_xattrdir()
1088 zfs_get_xattrdir(znode_t *zp, vnode_t **xvpp, cred_t *cr, int flags) in zfs_get_xattrdir() argument
1090 zfsvfs_t *zfsvfs = zp->z_zfsvfs; in zfs_get_xattrdir()
1096 error = zfs_dirent_lock(&dl, zp, "", &xzp, ZXATTR, NULL, NULL); in zfs_get_xattrdir()
1130 zfs_fuid_map_ids(zp, cr, &va.va_uid, &va.va_gid); in zfs_get_xattrdir()
1132 error = zfs_make_xattrdir(zp, &va, xvpp, cr); in zfs_get_xattrdir()
1157 zfs_sticky_remove_access(znode_t *zdp, znode_t *zp, cred_t *cr) in zfs_sticky_remove_access() argument
1171 fowner = zfs_fuid_map_id(zfsvfs, zp->z_uid, cr, ZFS_OWNER); in zfs_sticky_remove_access()
1174 (ZTOV(zp)->v_type == VREG && in zfs_sticky_remove_access()
1175 zfs_zaccess(zp, ACE_WRITE_DATA, 0, B_FALSE, cr) == 0)) in zfs_sticky_remove_access()