summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2014-01-16 16:15:38 +0000
committeravg <avg@FreeBSD.org>2014-01-16 16:15:38 +0000
commitc80798a63fccbfab3e6400c391eab5f21c02474c (patch)
tree2be75a68bc06a3aea06b84e2842d1e10cc22cfdc /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
parentf06ee197d04358d8251153c415df32f0d899467d (diff)
downloadFreeBSD-src-c80798a63fccbfab3e6400c391eab5f21c02474c.zip
FreeBSD-src-c80798a63fccbfab3e6400c391eab5f21c02474c.tar.gz
MFC r258720: MFV r258665: 4347 ZPL can use dmu_tx_assign(TXG_WAIT)
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
index c076775..1f7fee2 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_dir.c
@@ -951,7 +951,6 @@ zfs_make_xattrdir(znode_t *zp, vattr_t *vap, vnode_t **xvpp, cred_t *cr)
return (SET_ERROR(EDQUOT));
}
-top:
tx = dmu_tx_create(zfsvfs->z_os);
dmu_tx_hold_sa_create(tx, acl_ids.z_aclp->z_acl_bytes +
ZFS_SA_BASE_ATTR_SIZE);
@@ -960,13 +959,8 @@ top:
fuid_dirtied = zfsvfs->z_fuid_dirty;
if (fuid_dirtied)
zfs_fuid_txhold(zfsvfs, tx);
- error = dmu_tx_assign(tx, TXG_NOWAIT);
+ error = dmu_tx_assign(tx, TXG_WAIT);
if (error) {
- if (error == ERESTART) {
- dmu_tx_wait(tx);
- dmu_tx_abort(tx);
- goto top;
- }
zfs_acl_ids_free(&acl_ids);
dmu_tx_abort(tx);
return (error);
OpenPOWER on IntegriCloud