Hello, In the write path, large data block allocation is done asynchronously through zil_commit->...-> zfs_get_data->dmu_sync->zio ... and propagated back to the znode/dnode. Can someone point me to the code in charge of triggering the zil_commit in the regular asynchronous case for files (with the sync flag the call is explicit)? It seems to me the log could stay dangerously long in memory in case of low activity? Thx, Jerome. -- This message posted from opensolaris.org
I answer my own question. The log record may not hit the stable storage in case of failure and that''s ok (use sync flag otherwise) but as far as the indirect block allocation and log record to stable storage operations are atomically done in this order the fs is always in a consistent state. I thought this invariant was violated from reading the code, sorry. Jerome. -- This message posted from opensolaris.org