Lines Matching defs:zp

387 	znode_t *zp;
413 error = zfs_zget(zfsvfs, parent, &zp);
415 *zpp = zp;
430 error = zfs_dirent_lock(&dl, dzp, name, &zp, zf, deflg, rpnp);
432 *zpp = zp;
460 zfs_unlinked_add(znode_t *zp, dmu_tx_t *tx)
462 zfsvfs_t *zfsvfs = ZTOZSB(zp);
464 ASSERT(zp->z_unlinked);
465 ASSERT(ZTOI(zp)->i_nlink == 0);
468 zap_add_int(zfsvfs->z_os, zfsvfs->z_unlinkedobj, zp->z_id, tx));
484 znode_t *zp;
509 * so we pull them back into core and set zp->z_unlinked.
511 error = zfs_zget(zfsvfs, zap->za_first_integer, &zp);
522 zp->z_unlinked = B_TRUE;
531 zrele(zp);
651 zfs_rmnode(znode_t *zp)
653 zfsvfs_t *zfsvfs = ZTOZSB(zp);
658 uint64_t z_id = zp->z_id;
664 ASSERT(ZTOI(zp)->i_nlink == 0);
665 ASSERT(atomic_read(&ZTOI(zp)->i_count) == 0);
670 if (S_ISDIR(ZTOI(zp)->i_mode) && (zp->z_pflags & ZFS_XATTR)) {
671 if (zfs_purgedir(zp) != 0) {
677 zfs_znode_dmu_fini(zp);
690 if (S_ISREG(ZTOI(zp)->i_mode)) {
691 error = dmu_free_long_range(os, zp->z_id, 0, DMU_OBJECT_END);
698 zfs_znode_dmu_fini(zp);
708 error = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
715 acl_obj = zfs_external_acl(zp);
721 dmu_tx_hold_free(tx, zp->z_id, 0, DMU_OBJECT_END);
730 zfs_sa_upgrade_txholds(tx, zp);
740 zfs_znode_dmu_fini(zp);
766 zp->z_id, tx);
778 zfs_znode_delete(zp, tx);
787 zfs_dirent(znode_t *zp, uint64_t mode)
789 uint64_t de = zp->z_id;
791 if (ZTOZSB(zp)->z_version >= ZPL_VERSION_DIRENT_TYPE)
797 * Link zp into dl. Can fail in the following cases :
798 * - if zp has been unlinked.
804 zfs_link_create(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag)
807 zfsvfs_t *zfsvfs = ZTOZSB(zp);
809 int zp_is_dir = S_ISDIR(ZTOI(zp)->i_mode);
816 mutex_enter(&zp->z_lock);
819 if (zp->z_unlinked) { /* no new links to unlinked zp */
821 mutex_exit(&zp->z_lock);
829 inc_nlink(ZTOI(zp));
830 links = ZTOI(zp)->i_nlink;
836 value = zfs_dirent(zp, zp->z_mode);
837 error = zap_add(ZTOZSB(zp)->z_os, dzp->z_id, dl->dl_name, 8, 1,
848 drop_nlink(ZTOI(zp));
849 mutex_exit(&zp->z_lock);
865 &zp->z_pflags, sizeof (zp->z_pflags));
870 zfs_tstamp_update_setup(zp, STATE_CHANGED, mtime,
873 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
876 mutex_exit(&zp->z_lock);
925 zfs_dropname(zfs_dirlock_t *dl, znode_t *zp, znode_t *dzp, dmu_tx_t *tx,
930 if (ZTOZSB(zp)->z_norm) {
933 if ((ZTOZSB(zp)->z_case == ZFS_CASE_INSENSITIVE &&
935 (ZTOZSB(zp)->z_case == ZFS_CASE_MIXED &&
940 error = zap_remove_norm(ZTOZSB(zp)->z_os, dzp->z_id,
943 error = zap_remove(ZTOZSB(zp)->z_os, dzp->z_id, dl->dl_name,
951 zfs_drop_nlink_locked(znode_t *zp, dmu_tx_t *tx, boolean_t *unlinkedp)
953 zfsvfs_t *zfsvfs = ZTOZSB(zp);
954 int zp_is_dir = S_ISDIR(ZTOI(zp)->i_mode);
962 if (zp_is_dir && !zfs_dirempty(zp))
965 if (ZTOI(zp)->i_nlink <= zp_is_dir) {
967 "should be at least %u", zp->z_id,
968 (int)ZTOI(zp)->i_nlink, zp_is_dir + 1);
969 set_nlink(ZTOI(zp), zp_is_dir + 1);
971 drop_nlink(ZTOI(zp));
972 if (ZTOI(zp)->i_nlink == zp_is_dir) {
973 zp->z_unlinked = B_TRUE;
974 clear_nlink(ZTOI(zp));
980 NULL, &zp->z_pflags, sizeof (zp->z_pflags));
981 zfs_tstamp_update_setup(zp, STATE_CHANGED, mtime,
984 links = ZTOI(zp)->i_nlink;
987 error = sa_bulk_update(zp->z_sa_hdl, bulk, count, tx);
993 zfs_unlinked_add(zp, tx);
999 * Forcefully drop an nlink reference from (zp) and mark it for deletion if it
1007 zfs_drop_nlink(znode_t *zp, dmu_tx_t *tx, boolean_t *unlinkedp)
1011 mutex_enter(&zp->z_lock);
1012 error = zfs_drop_nlink_locked(zp, tx, unlinkedp);
1013 mutex_exit(&zp->z_lock);
1019 * Unlink zp from dl, and mark zp for deletion if this was the last link. Can
1020 * fail if zp is a mount point (EBUSY) or a non-empty directory (ENOTEMPTY).
1026 zfs_link_destroy(zfs_dirlock_t *dl, znode_t *zp, dmu_tx_t *tx, int flag,
1031 int zp_is_dir = S_ISDIR(ZTOI(zp)->i_mode);
1040 mutex_enter(&zp->z_lock);
1042 if (zp_is_dir && !zfs_dirempty(zp)) {
1043 mutex_exit(&zp->z_lock);
1052 error = zfs_dropname(dl, zp, dzp, tx, flag);
1054 mutex_exit(&zp->z_lock);
1059 error = zfs_drop_nlink_locked(zp, tx, &unlinked);
1061 mutex_exit(&zp->z_lock);
1063 error = zfs_dropname(dl, zp, dzp, tx, flag);
1071 drop_nlink(ZTOI(dzp)); /* ".." link from zp */
1091 zfs_unlinked_add(zp, tx);
1101 * The internal ZAP size, rather than zp->z_size, needs to be checked since
1122 zfs_make_xattrdir(znode_t *zp, vattr_t *vap, znode_t **xzpp, cred_t *cr)
1124 zfsvfs_t *zfsvfs = ZTOZSB(zp);
1136 if ((error = zfs_acl_ids_create(zp, IS_XATTR, vap, cr, NULL,
1139 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, zp->z_projid)) {
1147 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
1158 zfs_mknode(zp, vap, tx, cr, IS_XATTR, &xzp, &acl_ids);
1166 ASSERT(error == 0 && parent == zp->z_id);
1169 VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs), &xzp->z_id,
1172 if (!zp->z_unlinked)
1173 zfs_log_create(zfsvfs->z_log, tx, TX_MKXATTR, zp, xzp, "", NULL,
1185 * Return a znode for the extended attribute directory for zp.
1188 * IN: zp - znode to obtain attribute directory from
1198 zfs_get_xattrdir(znode_t *zp, znode_t **xzpp, cred_t *cr, int flags)
1200 zfsvfs_t *zfsvfs = ZTOZSB(zp);
1206 error = zfs_dirent_lock(&dl, zp, "", &xzp, ZXATTR, NULL, NULL);
1238 zfs_fuid_map_ids(zp, cr, &va.va_uid, &va.va_gid);
1241 error = zfs_make_xattrdir(zp, &va, xzpp, cr);
1266 zfs_sticky_remove_access(znode_t *zdp, znode_t *zp, cred_t *cr)
1281 fowner = zfs_fuid_map_id(zfsvfs, KUID_TO_SUID(ZTOI(zp)->i_uid),
1285 zfs_zaccess(zp, ACE_WRITE_DATA, 0, B_FALSE, cr,