Lines Matching defs:zp

78 zfs_sa_readlink(znode_t *zp, zfs_uio_t *uio)
80 dmu_buf_t *db = sa_get_db(zp->z_sa_hdl);
84 bufsz = zp->z_size;
91 if ((error = dmu_buf_hold(ZTOZSB(zp)->z_os, zp->z_id,
103 zfs_sa_symlink(znode_t *zp, char *link, int len, dmu_tx_t *tx)
105 dmu_buf_t *db = sa_get_db(zp->z_sa_hdl);
116 zfs_grow_blocksize(zp, len, tx);
117 VERIFY0(dmu_buf_hold(ZTOZSB(zp)->z_os, zp->z_id, 0, FTAG, &dbp,
129 zfs_sa_get_scanstamp(znode_t *zp, xvattr_t *xvap)
131 zfsvfs_t *zfsvfs = ZTOZSB(zp);
134 ASSERT(MUTEX_HELD(&zp->z_lock));
136 if (zp->z_is_sa) {
137 if (sa_lookup(zp->z_sa_hdl, SA_ZPL_SCANSTAMP(zfsvfs),
143 dmu_buf_t *db = sa_get_db(zp->z_sa_hdl);
146 if (!(zp->z_pflags & ZFS_BONUS_SCANSTAMP))
149 sa_object_info(zp->z_sa_hdl, &doi);
163 zfs_sa_set_scanstamp(znode_t *zp, xvattr_t *xvap, dmu_tx_t *tx)
165 zfsvfs_t *zfsvfs = ZTOZSB(zp);
168 ASSERT(MUTEX_HELD(&zp->z_lock));
170 if (zp->z_is_sa)
171 VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_SCANSTAMP(zfsvfs),
176 dmu_buf_t *db = sa_get_db(zp->z_sa_hdl);
179 sa_object_info(zp->z_sa_hdl, &doi);
187 zp->z_pflags |= ZFS_BONUS_SCANSTAMP;
188 VERIFY(0 == sa_update(zp->z_sa_hdl, SA_ZPL_FLAGS(zfsvfs),
189 &zp->z_pflags, sizeof (uint64_t), tx));
194 zfs_sa_get_xattr(znode_t *zp)
196 zfsvfs_t *zfsvfs = ZTOZSB(zp);
201 ASSERT(RW_LOCK_HELD(&zp->z_xattr_lock));
202 ASSERT(!zp->z_xattr_cached);
203 ASSERT(zp->z_is_sa);
205 error = sa_size(zp->z_sa_hdl, SA_ZPL_DXATTR(zfsvfs), &size);
208 return nvlist_alloc(&zp->z_xattr_cached,
216 error = sa_lookup(zp->z_sa_hdl, SA_ZPL_DXATTR(zfsvfs), obj, size);
218 error = nvlist_unpack(obj, size, &zp->z_xattr_cached, KM_SLEEP);
226 zfs_sa_set_xattr(znode_t *zp, const char *name, const void *value, size_t vsize)
228 zfsvfs_t *zfsvfs = ZTOZSB(zp);
235 ASSERT(RW_WRITE_HELD(&zp->z_xattr_lock));
236 ASSERT(zp->z_xattr_cached);
237 ASSERT(zp->z_is_sa);
239 error = nvlist_size(zp->z_xattr_cached, &size, NV_ENCODE_XDR);
247 error = nvlist_pack(zp->z_xattr_cached, &obj, &size,
265 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
276 zfs_log_setsaxattr(zilog, tx, TX_SETSAXATTR, zp, name,
279 zfs_tstamp_update_setup(zp, STATE_CHANGED, NULL, ctime);
284 VERIFY0(sa_bulk_update(zp->z_sa_hdl, bulk, count, tx));
308 znode_t *zp = sa_get_userdata(hdl);
309 zfsvfs_t *zfsvfs = ZTOZSB(zp);
326 if (zp->z_acl_cached == NULL || Z_ISLNK(ZTOTYPE(zp)))
338 if (MUTEX_NOT_HELD(&zp->z_lock)) {
339 if (mutex_tryenter(&zp->z_lock) == 0)
365 !(zp->z_pflags & ZFS_PROJID)) {
366 zp->z_pflags |= ZFS_PROJID;
367 zp->z_projid = ZFS_DEFAULT_PROJID;
378 &zp->z_size, 8);
386 &zp->z_pflags, 8);
395 links = ZTONLNK(zp);
400 &zp->z_projid, 8);
401 if (Z_ISBLK(ZTOTYPE(zp)) || Z_ISCHR(ZTOTYPE(zp)))
405 &zp->z_acl_cached->z_acl_count, 8);
407 if (zp->z_acl_cached->z_version < ZFS_ACL_VERSION_FUID)
408 zfs_acl_xform(zp, zp->z_acl_cached, CRED());
410 locate.cb_aclp = zp->z_acl_cached;
412 zfs_acl_data_locator, &locate, zp->z_acl_cached->z_acl_bytes);
420 if (zp->z_pflags & ZFS_BONUS_SCANSTAMP) {
426 zp->z_pflags &= ~ZFS_BONUS_SCANSTAMP;
436 zp->z_is_sa = B_TRUE;
441 mutex_exit(&zp->z_lock);
445 zfs_sa_upgrade_txholds(dmu_tx_t *tx, znode_t *zp)
447 if (!ZTOZSB(zp)->z_use_sa || zp->z_is_sa)
451 dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
453 if (zfs_external_acl(zp)) {
454 dmu_tx_hold_free(tx, zfs_external_acl(zp), 0,