mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
ZIL: Change ZIOs issue order.
In zil_lwb_write_issue(), after issuing lwb_root_zio/lwb_write_zio, we have no right to access lwb->lwb_child_zio. If it was not there, the first two ZIOs may have already completed and freed the lwb. ZIOs issue in opposite order from children to parent should keep the lwb valid till the end, since the lwb can be freed only after lwb_root_zio completion callback. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Closes #15233
This commit is contained in:
parent
7dc2baaa1f
commit
79ac1b29d5
@ -1924,10 +1924,10 @@ next_lwb:
|
||||
BP_GET_LSIZE(&lwb->lwb_blk));
|
||||
}
|
||||
lwb->lwb_issued_timestamp = gethrtime();
|
||||
zio_nowait(lwb->lwb_root_zio);
|
||||
zio_nowait(lwb->lwb_write_zio);
|
||||
if (lwb->lwb_child_zio)
|
||||
zio_nowait(lwb->lwb_child_zio);
|
||||
zio_nowait(lwb->lwb_write_zio);
|
||||
zio_nowait(lwb->lwb_root_zio);
|
||||
|
||||
/*
|
||||
* If nlwb was ready when we gave it the block pointer,
|
||||
|
Loading…
Reference in New Issue
Block a user