Mercurial > illumos > illumos-gate
changeset 7030:b81089449d53
6721869 zil needs to pass block birth txg to zil_rewrite()
author | perrin |
---|---|
date | Thu, 03 Jul 2008 15:08:19 -0700 |
parents | 31421ec8c2cb |
children | 2738a61b5fd9 |
files | usr/src/uts/common/fs/zfs/sys/zio.h usr/src/uts/common/fs/zfs/zil.c usr/src/uts/common/fs/zfs/zio.c |
diffstat | 3 files changed, 13 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/usr/src/uts/common/fs/zfs/sys/zio.h Thu Jul 03 15:07:35 2008 -0700 +++ b/usr/src/uts/common/fs/zfs/sys/zio.h Thu Jul 03 15:08:19 2008 -0700 @@ -300,10 +300,9 @@ zio_done_func_t *ready, zio_done_func_t *done, void *private, int priority, int flags, zbookmark_t *zb); -extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, int checksum, - uint64_t txg, blkptr_t *bp, void *data, uint64_t size, - zio_done_func_t *done, void *private, int priority, int flags, - zbookmark_t *zb); +extern zio_t *zio_rewrite(zio_t *pio, spa_t *spa, int checksum, blkptr_t *bp, + void *data, uint64_t size, zio_done_func_t *done, void *private, + int priority, int flags, zbookmark_t *zb); extern zio_t *zio_free(zio_t *pio, spa_t *spa, uint64_t txg, blkptr_t *bp, zio_done_func_t *done, void *private);
--- a/usr/src/uts/common/fs/zfs/zil.c Thu Jul 03 15:07:35 2008 -0700 +++ b/usr/src/uts/common/fs/zfs/zil.c Thu Jul 03 15:08:19 2008 -0700 @@ -658,7 +658,7 @@ } if (lwb->lwb_zio == NULL) { lwb->lwb_zio = zio_rewrite(zilog->zl_root_zio, zilog->zl_spa, - ZIO_CHECKSUM_ZILOG, 0, &lwb->lwb_blk, lwb->lwb_buf, + ZIO_CHECKSUM_ZILOG, &lwb->lwb_blk, lwb->lwb_buf, lwb->lwb_sz, zil_lwb_write_done, lwb, ZIO_PRIORITY_LOG_WRITE, ZIO_FLAG_CANFAIL, &zb); }
--- a/usr/src/uts/common/fs/zfs/zio.c Thu Jul 03 15:07:35 2008 -0700 +++ b/usr/src/uts/common/fs/zfs/zio.c Thu Jul 03 15:08:19 2008 -0700 @@ -527,14 +527,13 @@ } zio_t * -zio_rewrite(zio_t *pio, spa_t *spa, int checksum, - uint64_t txg, blkptr_t *bp, void *data, uint64_t size, - zio_done_func_t *done, void *private, int priority, int flags, - zbookmark_t *zb) +zio_rewrite(zio_t *pio, spa_t *spa, int checksum, blkptr_t *bp, void *data, + uint64_t size, zio_done_func_t *done, void *private, int priority, + int flags, zbookmark_t *zb) { zio_t *zio; - zio = zio_create(pio, spa, txg, bp, data, size, done, private, + zio = zio_create(pio, spa, bp->blk_birth, bp, data, size, done, private, ZIO_TYPE_WRITE, priority, flags | ZIO_FLAG_USER, ZIO_STAGE_OPEN, ZIO_REWRITE_PIPELINE(bp)); @@ -1506,10 +1505,10 @@ ASSERT(i < SPA_GBH_NBLKPTRS); ASSERT(!BP_IS_HOLE(gbp)); - zio_nowait(zio_rewrite(zio, zio->io_spa, zio->io_checksum, - zio->io_txg, gbp, (char *)zio->io_data + loff, lsize, - NULL, NULL, zio->io_priority, - zio->io_flags & ZIO_FLAG_GANG_INHERIT, &zio->io_bookmark)); + zio_nowait(zio_rewrite(zio, zio->io_spa, zio->io_checksum, gbp, + (char *)zio->io_data + loff, lsize, NULL, NULL, + zio->io_priority, zio->io_flags & ZIO_FLAG_GANG_INHERIT, + &zio->io_bookmark)); } zio_push_transform(zio, gbh, gsize, gbufsize); @@ -1655,8 +1654,7 @@ BP_SET_PSIZE(gbp, lsize); BP_SET_COMPRESS(gbp, ZIO_COMPRESS_OFF); gbp->blk_birth = txg; - zio_nowait(zio_rewrite(zio, spa, - zio->io_checksum, txg, gbp, + zio_nowait(zio_rewrite(zio, spa, zio->io_checksum, gbp, (char *)zio->io_data + loff, lsize, zio_write_allocate_gang_member_done, NULL, zio->io_priority,