summaryrefslogtreecommitdiffstats
path: root/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
diff options
context:
space:
mode:
authormm <mm@FreeBSD.org>2010-10-26 15:48:03 +0000
committermm <mm@FreeBSD.org>2010-10-26 15:48:03 +0000
commit2a633688551f48f02ecc56bf6756c273d059d10d (patch)
treeebe12d2bbc1bcdf1a9705fdf4bf105e2c4dd3361 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
parent38228eea55b9dedc5fa7bf4731ebc15e0fc8128e (diff)
downloadFreeBSD-src-2a633688551f48f02ecc56bf6756c273d059d10d.zip
FreeBSD-src-2a633688551f48f02ecc56bf6756c273d059d10d.tar.gz
Bugfix merge from OpenSolaris:
OpenSolaris onnv-revision: 10209:91f47f0e7728 6830541 zfs_get_data_trips on a verify 6696242 multiple zfs_fillpage() zfs: accessing past end of object panics 6785914 zfs fails to drop dn_struct_rwlock in recovery code path Approved by: delphij (mentor) Obtained from: OpenSolaris (Bug ID 6830541, 6696242, 6785914) MFC after: 2 weeks
Diffstat (limited to 'sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c')
-rw-r--r--sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
index 1dd8ea0..490e50f 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
@@ -933,6 +933,10 @@ zil_lwb_commit(zilog_t *zilog, itx_t *itx, lwb_t *lwb)
}
error = zilog->zl_get_data(
itx->itx_private, lr, dbuf, lwb->lwb_zio);
+ if (error == EIO) {
+ txg_wait_synced(zilog->zl_dmu_pool, txg);
+ return (lwb);
+ }
if (error) {
ASSERT(error == ENOENT || error == EEXIST ||
error == EALREADY);
OpenPOWER on IntegriCloud