Lines Matching refs:zfsvfs

85  *	This is done avoiding races using zfs_enter(zfsvfs).
86 * A zfs_exit(zfsvfs) is needed before all returns. Any znodes
124 * If dmu_tx_assign() returns ERESTART and zfsvfs->z_assign is TXG_NOWAIT,
145 * zfs_enter(zfsvfs); // exit if unmounted
163 * zfs_exit(zfsvfs); // finished in zfs
174 * zfs_exit(zfsvfs); // finished in zfs
182 zfsvfs_t *zfsvfs = ITOZSB(ip);
185 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
191 zfs_exit(zfsvfs, FTAG);
202 zil_async_to_sync(zfsvfs->z_log, zp->z_id);
205 zfs_exit(zfsvfs, FTAG);
214 zfsvfs_t *zfsvfs = ITOZSB(ip);
217 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
224 zfs_exit(zfsvfs, FTAG);
440 zfsvfs_t *zfsvfs = ZTOZSB(zdp);
471 if ((error = zfs_enter_verify_zp(zfsvfs, zdp, FTAG)) != 0)
482 zfs_exit(zfsvfs, FTAG);
487 zfs_exit(zfsvfs, FTAG);
501 zfs_exit(zfsvfs, FTAG);
506 zfs_exit(zfsvfs, FTAG);
516 zfs_exit(zfsvfs, FTAG);
520 if (zfsvfs->z_utf8 && u8_validate(nm, strlen(nm),
522 zfs_exit(zfsvfs, FTAG);
530 zfs_exit(zfsvfs, FTAG);
563 zfsvfs_t *zfsvfs = ZTOZSB(dzp);
585 if (zfsvfs->z_use_fuids == B_FALSE &&
592 if ((error = zfs_enter_verify_zp(zfsvfs, dzp, FTAG)) != 0)
594 os = zfsvfs->z_os;
595 zilog = zfsvfs->z_log;
597 if (zfsvfs->z_utf8 && u8_validate(name, strlen(name),
599 zfs_exit(zfsvfs, FTAG);
606 zfs_exit(zfsvfs, FTAG);
635 zfs_exit(zfsvfs, FTAG);
674 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, projid)) {
685 fuid_dirtied = zfsvfs->z_fuid_dirty;
687 zfs_fuid_txhold(zfsvfs, tx);
690 if (!zfsvfs->z_use_sa &&
708 zfs_exit(zfsvfs, FTAG);
727 zfs_fuid_sync(zfsvfs, tx);
798 if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
801 zfs_exit(zfsvfs, FTAG);
812 zfsvfs_t *zfsvfs = ITOZSB(dip);
832 if (zfsvfs->z_use_fuids == B_FALSE &&
836 if ((error = zfs_enter_verify_zp(zfsvfs, dzp, FTAG)) != 0)
838 os = zfsvfs->z_os;
843 zfs_exit(zfsvfs, FTAG);
868 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, projid)) {
878 dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL);
880 fuid_dirtied = zfsvfs->z_fuid_dirty;
882 zfs_fuid_txhold(zfsvfs, tx);
883 if (!zfsvfs->z_use_sa &&
898 zfs_exit(zfsvfs, FTAG);
904 zfs_fuid_sync(zfsvfs, tx);
922 zfs_exit(zfsvfs, FTAG);
949 zfsvfs_t *zfsvfs = ZTOZSB(dzp);
969 if ((error = zfs_enter_verify_zp(zfsvfs, dzp, FTAG)) != 0)
971 zilog = zfsvfs->z_log;
989 zfs_exit(zfsvfs, FTAG);
1017 tx = dmu_tx_create(zfsvfs->z_os);
1030 error = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
1033 error = zfs_zget(zfsvfs, xattr_obj, &xzp);
1045 dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL);
1070 zfs_exit(zfsvfs, FTAG);
1091 (void) sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
1108 error = sa_update(xzp->z_sa_hdl, SA_ZPL_LINKS(zfsvfs),
1116 SA_ZPL_XATTR(zfsvfs), tx);
1119 SA_ZPL_XATTR(zfsvfs), &null_xattr,
1158 if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
1161 zfs_exit(zfsvfs, FTAG);
1191 zfsvfs_t *zfsvfs = ZTOZSB(dzp);
1212 if (zfsvfs->z_use_fuids == B_FALSE &&
1219 if ((error = zfs_enter_verify_zp(zfsvfs, dzp, FTAG)) != 0)
1221 zilog = zfsvfs->z_log;
1224 zfs_exit(zfsvfs, FTAG);
1228 if (zfsvfs->z_utf8 && u8_validate(dirname,
1230 zfs_exit(zfsvfs, FTAG);
1239 zfs_exit(zfsvfs, FTAG);
1246 zfs_exit(zfsvfs, FTAG);
1262 zfs_exit(zfsvfs, FTAG);
1270 zfs_exit(zfsvfs, FTAG);
1274 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, zfs_inherit_projid(dzp))) {
1277 zfs_exit(zfsvfs, FTAG);
1284 tx = dmu_tx_create(zfsvfs->z_os);
1287 fuid_dirtied = zfsvfs->z_fuid_dirty;
1289 zfs_fuid_txhold(zfsvfs, tx);
1290 if (!zfsvfs->z_use_sa && acl_ids.z_aclp->z_acl_bytes > ZFS_ACE_SPACE) {
1309 zfs_exit(zfsvfs, FTAG);
1329 zfs_fuid_sync(zfsvfs, tx);
1346 if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
1355 zfs_exit(zfsvfs, FTAG);
1380 zfsvfs_t *zfsvfs = ZTOZSB(dzp);
1391 if ((error = zfs_enter_verify_zp(zfsvfs, dzp, FTAG)) != 0)
1393 zilog = zfsvfs->z_log;
1405 zfs_exit(zfsvfs, FTAG);
1435 tx = dmu_tx_create(zfsvfs->z_os);
1438 dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL);
1456 zfs_exit(zfsvfs, FTAG);
1481 if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
1484 zfs_exit(zfsvfs, FTAG);
1512 zfsvfs_t *zfsvfs = ITOZSB(ip);
1523 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
1526 if ((error = sa_lookup(zp->z_sa_hdl, SA_ZPL_PARENT(zfsvfs),
1537 os = zfsvfs->z_os;
1640 zfs_exit(zfsvfs, FTAG);
1666 zfsvfs_t *zfsvfs = ITOZSB(ip);
1671 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
1684 if ((zp->z_id == zfsvfs->z_root) && zfs_show_ctldir(zp))
1696 sp->blksize = zfsvfs->z_max_blksz;
1705 if (zfsvfs->z_issnap) {
1708 dmu_objset_id(zfsvfs->z_os);
1711 zfs_exit(zfsvfs, FTAG);
1732 zfsvfs_t *zfsvfs = ZTOZSB(dzp);
1733 objset_t *os = zfsvfs->z_os;
1780 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_UID(zfsvfs), NULL,
1787 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_GID(zfsvfs), NULL,
1795 SA_ZPL_FLAGS(zfsvfs), NULL, &zp->z_pflags,
1800 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_PROJID(zfsvfs),
1858 zfsvfs_t *zfsvfs = ZTOZSB(zp);
1888 if ((err = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
1891 os = zfsvfs->z_os;
1902 zfs_exit(zfsvfs, FTAG);
1908 zfs_exit(zfsvfs, FTAG);
1923 zfs_exit(zfsvfs, FTAG);
1928 zilog = zfsvfs->z_log;
1935 if (zfsvfs->z_use_fuids == B_FALSE &&
1939 zfs_exit(zfsvfs, FTAG);
1944 zfs_exit(zfsvfs, FTAG);
1949 zfs_exit(zfsvfs, FTAG);
1995 if (zfs_is_readonly(zfsvfs)) {
2059 zfs_groupmember(zfsvfs, gid, cr);
2230 err = sa_lookup(zp->z_sa_hdl, SA_ZPL_XATTR(zfsvfs),
2239 new_kuid = zfs_fuid_create(zfsvfs,
2242 zfs_id_overquota(zfsvfs, DMU_USERUSED_OBJECT,
2252 new_kgid = zfs_fuid_create(zfsvfs,
2255 zfs_id_overquota(zfsvfs, DMU_GROUPUSED_OBJECT,
2265 zfs_id_overquota(zfsvfs, DMU_PROJECTUSED_OBJECT, projid)) {
2294 if (zfsvfs->z_version >= ZPL_VERSION_FUID &&
2325 fuid_dirtied = zfsvfs->z_fuid_dirty;
2327 zfs_fuid_txhold(zfsvfs, tx);
2369 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_FLAGS(zfsvfs), NULL,
2377 SA_ZPL_FLAGS(zfsvfs), NULL, &attrzp->z_pflags,
2382 SA_ZPL_PROJID(zfsvfs), NULL, &attrzp->z_projid,
2392 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_UID(zfsvfs), NULL,
2396 SA_ZPL_UID(zfsvfs), NULL, &new_uid,
2405 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_GID(zfsvfs),
2409 SA_ZPL_GID(zfsvfs), NULL, &new_gid,
2415 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MODE(zfsvfs),
2428 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MODE(zfsvfs), NULL,
2444 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_ATIME(zfsvfs), NULL,
2453 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MTIME(zfsvfs), NULL,
2461 SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_CTIME(zfsvfs), NULL,
2468 SA_ZPL_PROJID(zfsvfs), NULL, &zp->z_projid,
2474 SA_ZPL_CTIME(zfsvfs), NULL, &ctime,
2519 zfs_fuid_sync(zfsvfs, tx);
2574 zfs_exit(zfsvfs, FTAG);
2699 zfsvfs_t *zfsvfs = ZTOZSB(sdzp);
2735 if ((error = zfs_enter_verify_zp(zfsvfs, sdzp, FTAG)) != 0)
2737 zilog = zfsvfs->z_log;
2740 zfs_exit(zfsvfs, FTAG);
2750 zfs_exit(zfsvfs, FTAG);
2754 if (zfsvfs->z_utf8 && u8_validate(tnm,
2756 zfs_exit(zfsvfs, FTAG);
2774 zfs_exit(zfsvfs, FTAG);
2793 int nofold = (zfsvfs->z_norm & ~U8_TEXTPREP_TOUPPER);
2796 ASSERT(error == 0 || !zfsvfs->z_utf8);
2804 zfs_exit(zfsvfs, FTAG);
2825 if ((zfsvfs->z_case == ZFS_CASE_INSENSITIVE ||
2826 (zfsvfs->z_case == ZFS_CASE_MIXED &&
2828 u8_strcmp(snm, tnm, 0, zfsvfs->z_norm, U8_UNICODE_LATEST,
2876 zfs_exit(zfsvfs, FTAG);
2888 zfs_exit(zfsvfs, FTAG);
2978 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, wo_projid)) {
2984 tx = dmu_tx_create(zfsvfs->z_os);
3004 if (!zfsvfs->z_use_sa &&
3010 fuid_dirtied = zfsvfs->z_fuid_dirty;
3012 zfs_fuid_txhold(zfsvfs, tx);
3014 dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL);
3038 zfs_exit(zfsvfs, FTAG);
3049 error = sa_update(szp->z_sa_hdl, SA_ZPL_FLAGS(zfsvfs),
3071 error = sa_update(tzp->z_sa_hdl, SA_ZPL_FLAGS(zfsvfs),
3121 zfs_fuid_sync(zfsvfs, tx);
3171 if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
3174 zfs_exit(zfsvfs, FTAG);
3234 zfsvfs_t *zfsvfs = ZTOZSB(dzp);
3249 if ((error = zfs_enter_verify_zp(zfsvfs, dzp, FTAG)) != 0)
3251 zilog = zfsvfs->z_log;
3253 if (zfsvfs->z_utf8 && u8_validate(name, strlen(name),
3255 zfs_exit(zfsvfs, FTAG);
3262 zfs_exit(zfsvfs, FTAG);
3268 zfs_exit(zfsvfs, FTAG);
3280 zfs_exit(zfsvfs, FTAG);
3287 zfs_exit(zfsvfs, FTAG);
3291 if (zfs_acl_ids_overquota(zfsvfs, &acl_ids, ZFS_DEFAULT_PROJID)) {
3294 zfs_exit(zfsvfs, FTAG);
3297 tx = dmu_tx_create(zfsvfs->z_os);
3298 fuid_dirtied = zfsvfs->z_fuid_dirty;
3304 if (!zfsvfs->z_use_sa && acl_ids.z_aclp->z_acl_bytes > ZFS_ACE_SPACE) {
3309 zfs_fuid_txhold(zfsvfs, tx);
3321 zfs_exit(zfsvfs, FTAG);
3332 zfs_fuid_sync(zfsvfs, tx);
3336 error = sa_update(zp->z_sa_hdl, SA_ZPL_SYMLINK(zfsvfs),
3343 (void) sa_update(zp->z_sa_hdl, SA_ZPL_SIZE(zfsvfs),
3370 if (zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
3376 zfs_exit(zfsvfs, FTAG);
3399 zfsvfs_t *zfsvfs = ITOZSB(ip);
3402 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
3408 SA_ZPL_SYMLINK(zfsvfs), uio);
3413 zfs_exit(zfsvfs, FTAG);
3439 zfsvfs_t *zfsvfs = ZTOZSB(tdzp);
3458 if ((error = zfs_enter_verify_zp(zfsvfs, tdzp, FTAG)) != 0)
3460 zilog = zfsvfs->z_log;
3467 zfs_exit(zfsvfs, FTAG);
3472 zfs_exit(zfsvfs, FTAG);
3485 zfs_exit(zfsvfs, FTAG);
3494 zfs_exit(zfsvfs, FTAG);
3500 if ((error = sa_lookup(szp->z_sa_hdl, SA_ZPL_PARENT(zfsvfs),
3502 zfs_exit(zfsvfs, FTAG);
3505 if (parent == zfsvfs->z_shares_dir) {
3506 zfs_exit(zfsvfs, FTAG);
3510 if (zfsvfs->z_utf8 && u8_validate(name,
3512 zfs_exit(zfsvfs, FTAG);
3525 zfs_exit(zfsvfs, FTAG);
3529 owner = zfs_fuid_map_id(zfsvfs, KUID_TO_SUID(sip->i_uid),
3532 zfs_exit(zfsvfs, FTAG);
3538 zfs_exit(zfsvfs, FTAG);
3548 zfs_exit(zfsvfs, FTAG);
3552 tx = dmu_tx_create(zfsvfs->z_os);
3556 dmu_tx_hold_zap(tx, zfsvfs->z_unlinkedobj, FALSE, NULL);
3570 zfs_exit(zfsvfs, FTAG);
3588 VERIFY(zap_remove_int(zfsvfs->z_os,
3589 zfsvfs->z_unlinkedobj, szp->z_id, tx) == 0);
3604 if (!is_tmpfile && zfsvfs->z_os->os_sync == ZFS_SYNC_ALWAYS)
3607 if (is_tmpfile && zfsvfs->z_os->os_sync != ZFS_SYNC_DISABLED)
3608 txg_wait_synced(dmu_objset_pool(zfsvfs->z_os), txg);
3612 zfs_exit(zfsvfs, FTAG);
3657 zfsvfs_t *zfsvfs = ITOZSB(ip);
3670 if ((err = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
3683 zfs_exit(zfsvfs, FTAG);
3697 if (zfs_id_overblockquota(zfsvfs, DMU_USERUSED_OBJECT,
3699 zfs_id_overblockquota(zfsvfs, DMU_GROUPUSED_OBJECT,
3702 zfs_id_overblockquota(zfsvfs, DMU_PROJECTUSED_OBJECT,
3743 zfs_exit(zfsvfs, FTAG);
3760 zil_commit(zfsvfs->z_log, zp->z_id);
3771 zfs_exit(zfsvfs, FTAG);
3779 zfs_exit(zfsvfs, FTAG);
3793 tx = dmu_tx_create(zfsvfs->z_os);
3811 zfs_exit(zfsvfs, FTAG);
3817 dmu_write(zfsvfs->z_os, zp->z_id, pgoff, pglen, va, tx);
3820 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_MTIME(zfsvfs), NULL, &mtime, 16);
3821 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_CTIME(zfsvfs), NULL, &ctime, 16);
3822 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_FLAGS(zfsvfs), NULL,
3855 zfs_log_write(zfsvfs->z_log, tx, TX_WRITE, zp, pgoff, pglen, commit,
3864 zil_commit(zfsvfs->z_log, zp->z_id);
3866 dataset_kstats_update_write_kstats(&zfsvfs->z_kstat, pglen);
3868 zfs_exit(zfsvfs, FTAG);
3880 zfsvfs_t *zfsvfs = ITOZSB(ip);
3888 if (zfs_is_readonly(zfsvfs) || dmu_objset_is_snapshot(zfsvfs->z_os))
3891 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
3908 tx = dmu_tx_create(zfsvfs->z_os);
3922 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_MODE(zfsvfs), NULL, &mode, 8);
3923 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_ATIME(zfsvfs), NULL, &atime, 16);
3924 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_MTIME(zfsvfs), NULL, &mtime, 16);
3925 SA_ADD_BULK_ATTR(bulk, cnt, SA_ZPL_CTIME(zfsvfs), NULL, &ctime, 16);
3943 zfs_exit(zfsvfs, FTAG);
3951 zfsvfs_t *zfsvfs = ITOZSB(ip);
3957 if (!RW_WRITE_HELD(&zfsvfs->z_teardown_inactive_lock)) {
3959 rw_enter(&zfsvfs->z_teardown_inactive_lock, RW_READER);
3963 rw_exit(&zfsvfs->z_teardown_inactive_lock);
3968 dmu_tx_t *tx = dmu_tx_create(zfsvfs->z_os);
3980 (void) sa_update(zp->z_sa_hdl, SA_ZPL_ATIME(zfsvfs),
3990 rw_exit(&zfsvfs->z_teardown_inactive_lock);
3999 zfsvfs_t *zfsvfs = ITOZSB(ip);
4010 int error = dmu_read(zfsvfs->z_os, ITOZ(ip)->z_id, io_off,
4045 zfsvfs_t *zfsvfs = ITOZSB(ip);
4049 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
4054 dataset_kstats_update_read_kstats(&zfsvfs->z_kstat, PAGE_SIZE);
4056 zfs_exit(zfsvfs, FTAG);
4079 zfsvfs_t *zfsvfs = ITOZSB(ip);
4082 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
4087 zfs_exit(zfsvfs, FTAG);
4093 zfs_exit(zfsvfs, FTAG);
4098 zfs_exit(zfsvfs, FTAG);
4102 zfs_exit(zfsvfs, FTAG);
4129 zfsvfs_t *zfsvfs = ZTOZSB(zp);
4133 if ((error = zfs_enter_verify_zp(zfsvfs, zp, FTAG)) != 0)
4137 zfs_exit(zfsvfs, FTAG);
4145 if (zfs_is_readonly(zfsvfs)) {
4146 zfs_exit(zfsvfs, FTAG);
4151 zfs_exit(zfsvfs, FTAG);
4163 zfs_exit(zfsvfs, FTAG);
4172 zfs_exit(zfsvfs, FTAG);
4180 zfsvfs_t *zfsvfs = ITOZSB(ip);
4187 if ((error = zfs_enter(zfsvfs, FTAG)) != 0)
4192 zfs_exit(zfsvfs, FTAG);
4197 zfs_exit(zfsvfs, FTAG);
4201 if ((error = sa_lookup(zp->z_sa_hdl, SA_ZPL_GEN(zfsvfs),
4203 zfs_exit(zfsvfs, FTAG);
4224 zfs_exit(zfsvfs, FTAG);