ZFS Experts,

Is it possible to use DMU as general purpose transaction engine? More
specifically, in following order:

1. Create transaction:
tx = dmu_tx_create(os);
error = dmu_tx_assign(tx, TXG_WAIT)

2. Decide what to modify(say create new object):
dmu_tx_hold_bonus(tx, DMU_NEW_OBJECT);
dmu_tx_hold_bonus(tx, dzp->z_id);
dmu_tx_hold_zap(tx, dzp->z_id, TRUE, name);
|
|

3. Commit transaction:
dmu_tx_commit(tx);

The reason I am asking for this particular order because I may not
know the intent of transaction till late in the process.
If it is not possible, can I at least declare that the transaction is
going to change N objects (without specification of each object) and
each change is M blocks at most (without specification of object and
offset). If yes, how?

Thanks,
-Atul

-- 
Atul Vidwansa
Cluster File Systems Inc.
http://www.clusterfs.com

Reply via email to