Lines Matching defs:zp

387 	znode_t *zp;
413 error = zfs_zget(zfsvfs, parent, &zp);
415 *zpp = zp;
427 error = zfs_dirent_lock(&dl, dzp, name, &zp, zf, deflg, rpnp);
429 *zpp = zp;
457 zfs_unlinked_add(znode_t *zp, dmu_tx_t *tx)
459 zfsvfs_t *zfsvfs = ZTOZSB(zp);
461 ASSERT(zp->z_unlinked);
462 ASSERT(ZTOI(zp)->i_nlink == 0);
465 zap_add_int(zfsvfs->z_os, zfsvfs->z_unlinkedobj, zp->z_id, tx));
481 znode_t *zp;
506 * so we pull them back into core and set zp->z_unlinked.
508 error = zfs_zget(zfsvfs, zap.za_first_integer, &zp);
519 zp->z_unlinked = B_TRUE;
528 zrele(zp);
646 zfs_rmnode(znode_t *zp)
648 zfsvfs_t *zfsvfs = ZTOZSB(zp);
653 uint64_t z_id = zp->z_id;
659 ASSERT(ZTOI(zp)->i_nlink == 0);
660 ASSERT(atomic_read(&ZTOI(zp)->i_count) == 0);
665 if (S_ISDIR(ZTOI(zp)->i_mode) && (zp->z_pflags & ZFS_XATTR)) {
666 if (zfs_purgedir(zp) != 0) {
672 zfs_znode_dmu_fini(zp);
685 if (S_ISREG(ZTOI(zp)->i_mode)) {
686 error = dmu_free_long_range(os, zp->z_id, 0, DMU_OBJECT_END);
693 zfs_znode_dmu_fini(zp);
703 error = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
710 acl_obj = zfs_external_acl(zp);
716 dmu_tx_hold_free(tx, zp->z_id, 0, DMU_OBJECT_END);
725 zfs_sa_upgrade_txholds(tx, zp);
735 zfs_znode_dmu_fini(zp);
761 zp->z_id, tx);
773 zfs_znode_delete(zp, tx);
782 zfs_dirent(znode_t *zp, uint64_t mode)
784 uint64_t de = zp->z_id;
786 if (ZTOZSB(zp)->z_version >= ZPL_VERSION_DIRENT_TYPE)
792 * Link zp into dl. Can fail in the following cases :
793 * - if zp has been unlinked.
799 zfs_link_create(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag)
802 zfsvfs_t *zfsvfs = ZTOZSB(zp);
804 int zp_is_dir = S_ISDIR(ZTOI(zp)->i_mode);
811 mutex_enter(&zp->z_lock);
814 if (zp->z_unlinked) { /* no new links to unlinked zp */
816 mutex_exit(&zp->z_lock);
824 inc_nlink(ZTOI(zp));
825 links = ZTOI(zp)->i_nlink;
831 value = zfs_dirent(zp, zp->z_mode);
832 error = zap_add(ZTOZSB(zp)->z_os, dzp->z_id, dl->dl_name, 8, 1,
843 drop_nlink(ZTOI(zp));
844 mutex_exit(&zp->z_lock);
851 &zp->z_pflags, sizeof (zp->z_pflags));
856 zfs_tstamp_update_setup(zp, STATE_CHANGED, mtime,
859 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
862 mutex_exit(&zp->z_lock);
911 zfs_dropname(zfs_dirlock_t *dl, znode_t *zp, znode_t *dzp, dmu_tx_t *tx,
916 if (ZTOZSB(zp)->z_norm) {
919 if ((ZTOZSB(zp)->z_case == ZFS_CASE_INSENSITIVE &&
921 (ZTOZSB(zp)->z_case == ZFS_CASE_MIXED &&
926 error = zap_remove_norm(ZTOZSB(zp)->z_os, dzp->z_id,
929 error = zap_remove(ZTOZSB(zp)->z_os, dzp->z_id, dl->dl_name,
937 zfs_drop_nlink_locked(znode_t *zp, dmu_tx_t *tx, boolean_t *unlinkedp)
939 zfsvfs_t *zfsvfs = ZTOZSB(zp);
940 int zp_is_dir = S_ISDIR(ZTOI(zp)->i_mode);
948 if (zp_is_dir && !zfs_dirempty(zp))
951 if (ZTOI(zp)->i_nlink <= zp_is_dir) {
953 "should be at least %u", zp->z_id,
954 (int)ZTOI(zp)->i_nlink, zp_is_dir + 1);
955 set_nlink(ZTOI(zp), zp_is_dir + 1);
957 drop_nlink(ZTOI(zp));
958 if (ZTOI(zp)->i_nlink == zp_is_dir) {
959 zp->z_unlinked = B_TRUE;
960 clear_nlink(ZTOI(zp));
966 NULL, &zp->z_pflags, sizeof (zp->z_pflags));
967 zfs_tstamp_update_setup(zp, STATE_CHANGED, mtime,
970 links = ZTOI(zp)->i_nlink;
973 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
979 zfs_unlinked_add(zp, tx);
985 * Forcefully drop an nlink reference from (zp) and mark it for deletion if it
993 zfs_drop_nlink(znode_t *zp, dmu_tx_t *tx, boolean_t *unlinkedp)
997 mutex_enter(&zp->z_lock);
998 error = zfs_drop_nlink_locked(zp, tx, unlinkedp);
999 mutex_exit(&zp->z_lock);
1005 * Unlink zp from dl, and mark zp for deletion if this was the last link. Can
1006 * fail if zp is a mount point (EBUSY) or a non-empty directory (ENOTEMPTY).
1012 zfs_link_destroy(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag,
1017 int zp_is_dir = S_ISDIR(ZTOI(zp)->i_mode);
1026 mutex_enter(&zp->z_lock);
1028 if (zp_is_dir && !zfs_dirempty(zp)) {
1029 mutex_exit(&zp->z_lock);
1038 error = zfs_dropname(dl, zp, dzp, tx, flag);
1040 mutex_exit(&zp->z_lock);
1045 error = zfs_drop_nlink_locked(zp, tx, &unlinked);
1047 mutex_exit(&zp->z_lock);
1049 error = zfs_dropname(dl, zp, dzp, tx, flag);
1057 drop_nlink(ZTOI(dzp)); /* ".." link from zp */
1077 zfs_unlinked_add(zp, tx);
1087 * The internal ZAP size, rather than zp->z_size, needs to be checked since
1108 zfs_make_xattrdir(znode_t *zp, vattr_t *vap, znode_t **xzpp, cred_t *cr)
1110 zfsvfs_t *zfsvfs = ZTOZSB(zp);
1122 if ((error = zfs_acl_ids_create(zp, IS_XATTR, vap, cr, NULL,
1125 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, zp->z_projid)) {
1133 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
1144 zfs_mknode(zp, vap, tx, cr, IS_XATTR, &xzp, &acl_ids);
1152 ASSERT(error == 0 && parent == zp->z_id);
1155 VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs), &xzp->z_id,
1158 if (!zp->z_unlinked)
1159 zfs_log_create(zfsvfs->z_log, tx, TX_MKXATTR, zp, xzp, "", NULL,
1171 * Return a znode for the extended attribute directory for zp.
1174 * IN: zp - znode to obtain attribute directory from
1184 zfs_get_xattrdir(znode_t *zp, znode_t **xzpp, cred_t *cr, int flags)
1186 zfsvfs_t *zfsvfs = ZTOZSB(zp);
1192 error = zfs_dirent_lock(&dl, zp, "", &xzp, ZXATTR, NULL, NULL);
1224 zfs_fuid_map_ids(zp, cr, &va.va_uid, &va.va_gid);
1227 error = zfs_make_xattrdir(zp, &va, xzpp, cr);
1252 zfs_sticky_remove_access(znode_t *zdp, znode_t *zp, cred_t *cr)
1267 fowner = zfs_fuid_map_id(zfsvfs, KUID_TO_SUID(ZTOI(zp)->i_uid),
1271 zfs_zaccess(zp, ACE_WRITE_DATA, 0, B_FALSE, cr,