Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Mar 2017 09:13:22 +0000 (UTC)
From:      Andriy Gapon <avg@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r315853 - head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs
Message-ID:  <201703230913.v2N9DMHV019806@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: avg
Date: Thu Mar 23 09:13:21 2017
New Revision: 315853
URL: https://svnweb.freebsd.org/changeset/base/315853

Log:
  zfs_putpages: use TXG_WAIT
  
  Explicit looping using TXG_NOWAIT is more verbose and may harm performance
  under heavy load because of multiple waits.
  
  MFC after:	1 week

Modified:
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Thu Mar 23 08:59:17 2017	(r315852)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c	Thu Mar 23 09:13:21 2017	(r315853)
@@ -4712,19 +4712,13 @@ zfs_putpages(struct vnode *vp, vm_page_t
 		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;
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703230913.v2N9DMHV019806>