diff options
author | mm <mm@FreeBSD.org> | 2010-10-26 15:48:03 +0000 |
---|---|---|
committer | mm <mm@FreeBSD.org> | 2010-10-26 15:48:03 +0000 |
commit | 2a633688551f48f02ecc56bf6756c273d059d10d (patch) | |
tree | ebe12d2bbc1bcdf1a9705fdf4bf105e2c4dd3361 /sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c | |
parent | 38228eea55b9dedc5fa7bf4731ebc15e0fc8128e (diff) | |
download | FreeBSD-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.c | 4 |
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); |