On 12/17/13 5:21 AM, Gaurav Mahajan wrote:
Hi all,

I am trying to understand relations of root ZIO and children ZIO.

This is what I have understood.. Please correct me if I'm wrong.

Usually whenever we want to do a series of IO operations like in sync thread. We create a root ZIO with zio_root(). Now this root ZIO becomes parent for every ZIO that we create while syncing the async data to disk (in dbuf_sync_leaf).

All the child ZIO are issued using zio_nowait()
After issuing all the children ZIO at the end we call zio_wait() on root ZIO.

So the question that comes in my mind is that after zio_wait for root ZIO is over, are we guaranteed that all the children ZIO are complete.?

Yes, the root zio cannot complete until all its children have completed.

- George

complete in sense like block allocation and data write are done and io_done callback are complete.

I may be wrong with my understanding. Please correct me.

Thanks !!!
Gaurav.



_______________________________________________
developer mailing list
developer@open-zfs.org
http://lists.open-zfs.org/mailman/listinfo/developer

_______________________________________________
developer mailing list
developer@open-zfs.org
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to