Illumos #3006
[zfs.git] / module / zfs / zfs_vnops.c
index 38f04e5..3b671b4 100644 (file)
@@ -20,6 +20,7 @@
  */
 /*
  * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012 by Delphix. All rights reserved.
  */
 
 /* Portions Copyright 2007 Jeremy Teo */
@@ -1523,7 +1524,7 @@ top:
            &xattr_obj, sizeof (xattr_obj));
        if (error == 0 && xattr_obj) {
                error = zfs_zget(zsb, xattr_obj, &xzp);
-               ASSERT3U(error, ==, 0);
+               ASSERT0(error);
                dmu_tx_hold_sa(tx, zp->z_sa_hdl, B_TRUE);
                dmu_tx_hold_sa(tx, xzp->z_sa_hdl, B_FALSE);
        }
@@ -2070,12 +2071,16 @@ out:
 }
 EXPORT_SYMBOL(zfs_readdir);
 
+ulong_t zfs_fsync_sync_cnt = 4;
+
 int
 zfs_fsync(struct inode *ip, int syncflag, cred_t *cr)
 {
        znode_t *zp = ITOZ(ip);
        zfs_sb_t *zsb = ITOZSB(ip);
 
+       (void) tsd_set(zfs_fsyncer_key, (void *)zfs_fsync_sync_cnt);
+
        if (zsb->z_os->os_sync != ZFS_SYNC_DISABLED) {
                ZFS_ENTER(zsb);
                ZFS_VERIFY_ZP(zp);
@@ -2833,7 +2838,7 @@ top:
                zp->z_mode = new_mode;
                ASSERT3P(aclp, !=, NULL);
                err = zfs_aclset_common(zp, aclp, cr, tx);
-               ASSERT3U(err, ==, 0);
+               ASSERT0(err);
                if (zp->z_acl_cached)
                        zfs_acl_free(zp->z_acl_cached);
                zp->z_acl_cached = aclp;
@@ -3342,7 +3347,7 @@ top:
 
                        error = sa_update(szp->z_sa_hdl, SA_ZPL_FLAGS(zsb),
                            (void *)&szp->z_pflags, sizeof (uint64_t), tx);
-                       ASSERT3U(error, ==, 0);
+                       ASSERT0(error);
 
                        error = zfs_link_destroy(sdl, szp, tx, ZRENAMING, NULL);
                        if (error == 0) {