diff options
| author | Alexander Motin <mav@FreeBSD.org> | 2017-03-02 07:55:47 +0000 |
|---|---|---|
| committer | Alexander Motin <mav@FreeBSD.org> | 2017-03-02 07:55:47 +0000 |
| commit | 6d1ccf40cc543fd487b9d3de0ad6efc2a05cb387 (patch) | |
| tree | 0ca60c6973452c7aa14421b71bc8809c526ff80e /sys | |
| parent | e93f9c77088a45d5530a7320b082b57c27058f68 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c | 8 |
1 files changed, 5 insertions, 3 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 aa003fe33091..27ffed6aac30 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c @@ -959,7 +959,7 @@ uint64_t zil_block_buckets[] = { * Calls are serialized. */ static lwb_t * -zil_lwb_write_start(zilog_t *zilog, lwb_t *lwb) +zil_lwb_write_start(zilog_t *zilog, lwb_t *lwb, boolean_t last) { lwb_t *nlwb = NULL; zil_chain_t *zilc; @@ -1060,6 +1060,8 @@ zil_lwb_write_start(zilog_t *zilog, lwb_t *lwb) */ bzero(lwb->lwb_buf + lwb->lwb_nused, wsz - lwb->lwb_nused); + if (last) + lwb->lwb_zio->io_pipeline &= ~ZIO_STAGE_ISSUE_ASYNC; zio_nowait(lwb->lwb_zio); /* Kick off the write for the old log block */ /* @@ -1103,7 +1105,7 @@ cont: if (reclen > lwb_sp || (reclen + dlen > lwb_sp && lwb_sp < ZIL_MAX_LOG_DATA / 8 && (dlen % ZIL_MAX_LOG_DATA == 0 || lwb_sp < reclen + dlen % ZIL_MAX_LOG_DATA))) { - lwb = zil_lwb_write_start(zilog, lwb); + lwb = zil_lwb_write_start(zilog, lwb, B_FALSE); if (lwb == NULL) return (NULL); zil_lwb_write_init(zilog, lwb); @@ -1560,7 +1562,7 @@ zil_commit_writer(zilog_t *zilog) /* write the last block out */ if (lwb != NULL && lwb->lwb_zio != NULL) - lwb = zil_lwb_write_start(zilog, lwb); + lwb = zil_lwb_write_start(zilog, lwb, B_TRUE); zilog->zl_cur_used = 0; |
