Illumos #1948: zpool list should show more detailed pool info
[zfs.git] / module / zfs / zfs_vnops.c
index 7561434..89f0f60 100644 (file)
@@ -1900,13 +1900,13 @@ top:
 out:
        zfs_dirent_unlock(dl);
 
+       zfs_inode_update(dzp);
+       zfs_inode_update(zp);
        iput(ip);
 
        if (zsb->z_os->os_sync == ZFS_SYNC_ALWAYS)
                zil_commit(zilog, 0);
 
-       zfs_inode_update(dzp);
-       zfs_inode_update(zp);
        ZFS_EXIT(zsb);
        return (error);
 }
@@ -3848,7 +3848,16 @@ zfs_putpage(struct inode *ip, struct page *pp, struct writeback_control *wbc)
                if (err == ERESTART)
                        dmu_tx_wait(tx);
 
+               /* Will call all registered commit callbacks */
                dmu_tx_abort(tx);
+
+               /*
+                * For the synchronous case the commit callback must be
+                * explicitly called because there is no registered callback.
+                */
+               if (sync)
+                       zfs_putpage_commit_cb(pp, ECANCELED);
+
                return (err);
        }