Provided by: atfs-dev_1.4pl6-11_amd64 bug

NAME

       af_transaction, af_commit, af_abort - a simple transaction mechanism for AtFS

SYNOPSIS

       #include <atfs.h>

       int af_transaction (void)

       int af_commit (void)

       int af_abort (void)

DESCRIPTION

       These  functions  implement  a  simple transaction mechanism for AtFS.  A transaction starts with calling
       af_transaction. All changes to existing ASOs performed hereafter  have  no  immediate  permanent  effect.
       They  rather get into effect, when the transaction is ended.  Calling af_commit ends the transactions and
       causes all changes to be saved to disk. af_abort aborts the transaction without saving the changes. These
       will then be discarded.

       Only  modification  of  the  state of existing source ASOs will be deferred. Creation or deletion of ASOs
       have immediate effect, regardless if a transaction is in effect or not. Additionally, all  operations  on
       derived ASOs (all operations on the derived object cache) are not affected by the transaction.

       All archive files that are to be changed when the transaction is finished are locked until the end of the
       transaction.  The lock prevents all other applications to perform any modifications on the archive  file.
       You  should  make sure, that ending a transaction should never be dependent on the successful termination
       of another application (deadlock danger).

DIAGNOSTICS

       Upon error, -1 is returned and af_errno is set to the corresponding error number.

BUGS

       Changes to the contents of busy versions have immediate effect.