Provided by: atfs-dev_1.4pl6-15_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.