diff options
author | avg <avg@FreeBSD.org> | 2017-04-14 15:07:55 +0000 |
---|---|---|
committer | avg <avg@FreeBSD.org> | 2017-04-14 15:07:55 +0000 |
commit | ab8f77ee2b737b657cb6722c6eef885911cedbe0 (patch) | |
tree | 8734d68bc3a1e6c65fae6779945716518f529adc /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c | |
parent | ff7e3e493164c34e7077e2d21e51dc025875c7ae (diff) | |
download | FreeBSD-src-ab8f77ee2b737b657cb6722c6eef885911cedbe0.zip FreeBSD-src-ab8f77ee2b737b657cb6722c6eef885911cedbe0.tar.gz |
MFC r315853: zfs_putpages: use TXG_WAIT
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c')
-rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c index 7208b19..2e98e4e 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c @@ -4760,19 +4760,13 @@ zfs_putpages(struct vnode *vp, vm_page_t *ma, size_t len, int flags, goto out; } -top: tx = dmu_tx_create(zfsvfs->z_os); dmu_tx_hold_write(tx, zp->z_id, off, len); dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_FALSE); zfs_sa_upgrade_txholds(tx, zp); - err = dmu_tx_assign(tx, TXG_NOWAIT); + err = dmu_tx_assign(tx, TXG_WAIT); if (err != 0) { - if (err == ERESTART) { - dmu_tx_wait(tx); - dmu_tx_abort(tx); - goto top; - } dmu_tx_abort(tx); goto out; } |