Richard Yao wrote:
> Have you considered using thread local storage to store the current open 
> transaction so that zfs_zinactive can use it when this recursion occurs?
> 

Skipping zil_commit in fsync() might be acceptable, since the requester of
the fsync is Darwin kernel, not userland. So fsync requests from software,
like MTA or "deliver" can still be guaranteed.

The biggest issue would then be vnop_pageout, where I am handed a UPL
request. Usually 8*PAGE_SIZE pages to flush. I suppose I could allocate
memory, copy the pages over, and add it to a list to be flushed out later.
If indeed nested dmu_txg is not feasible.

Lund

-- 
Jorgen Lundman       | <[email protected]>
Unix Administrator   | +81 (0)3 -5456-2687 ext 1017 (work)
Shibuya-ku, Tokyo    | +81 (0)90-5578-8500          (cell)
Japan                | +81 (0)3 -3375-1767          (home)
_______________________________________________
developer mailing list
[email protected]
http://lists.open-zfs.org/mailman/listinfo/developer

Reply via email to