fsckpt_opts_createall - create a Storage Checkpoint associated with a list of file system handles
int fsckpt_opts_createall(unsigned int version, void *fshandle, char *ckptname, int flags, int *errindx, struct c_create_opts *options);
fsckpt_opts_createall() creates a Storage Checkpoint on a list of file systems. The file system list is specified by the fshandle argument which is a NULL terminated array of previously opened file system handles. When fsckpt_opts_createall() is completed, a Storage Checkpoint named ckptname is created on every file system in the list.
Checkpoints are created atomically. This means that before a Storage Checkpoint is created, all file systems are brought to a stable state where all data is written to disk. The file systems are then frozen, blocking all subsequent user requests. The Storage Checkpoint creation is then initiated on stable file system images. Upon return from fsckpt_opts_createall(), Storage Checkpoints are created on all or none of the file systems. The only situation where some file systems may contain the Storage Checkpoint while others may not is if there is a system crash. It is the responsibility of the calling function to clean up Storage Checkpoints after a system crash.
A version number is passed to fsckpt_opts_createall() to associate the function with a set of features available. The FSCKPT_VERSION constant is defined and represents the most current version of the API. It is recommended that applications use this definition when using the API.
The flags argument specifies the creation type and policies to be used in the case of an ENOSPC condition. The following flags are defined:
The c_create_opts options structure is defined in the header file fsckpt.h and contains other optional arguments used in Storage Checkpoint creation. The structure allows the application to pass a signature field which will be embedded in the new Storage Checkpoint and to specify the data and meta-data policies to be used during Storage Checkpoint allocations. Any unused option fields should be zero filled. If an options structure is to be used in Storage Checkpoint creation, there must be an array of options structures corresponding to the array of previously opened file system handles.
0 ENOSPC errors are passed to the application. No action is taken on the Storage Checkpoint. CC_NODATA Creates a nodata Storage Checkpoint. If there is an older Storage Checkpoint that is not a nodata Storage Checkpoint, a delayed nodata Storage Checkpoint is created (see fsckpt_cntl(3) for more information). CC_NOMOUNT Creates a nomount Storage Checkpoint (see fsckpt_cntl(3) for more information). CC_REMOVE Creates a Storage Checkpoint which may self-destruct under ENOSPC conditions (see fsckpt_cntl(3) for more information).
fsckpt_opts_createall() returns zero on success, non-zero on failure. If fsckpt_opts_createall() fails, errindx is set to the index of the file system in fshandle which caused the failure.
EACCES User does not have permission to perform the operation. Only privileged users can create Storage Checkpoints. EEXIST The Storage Checkpoint name ckptname already exists in the file system Storage Checkpoint name space. EINVAL The function is being used incorrectly, or the arguments to the function could not be validated. This may occur when an application tries to use an fshandle that was not created by the same process. EIO An I/O error occurred on the device. The Storage Checkpoint could not be loaded. ENOSPC The file system does not have enough disk space to create the Storage Checkpoint. ENOSYS The system does not have a valid license to perform the operation. ENOTSUP The number of fshandles to operate on is not currently supported. EROFS The file system is mounted as read-only; no updates are allowed on the file system and the Storage Checkpoint cannot be modified.
fsckptadm(1M), fsckpt_cntl(3), fsckpt_create(3), fsckpt_createall(3), fsckpt_opts_create(3), fsckpt_fsopen(3), fsckpt_intro(3)