fsckpt_createall - create a Storage Checkpoint associated with a list of file system handles
int fsckpt_createall(void *fshandle, char *ckptname, int flags, int *errindx);
fsckpt_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_createall() completes, 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_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.
The flags argument specifies the creation type and policies to be used in the case of an ENOSPC condition. The following flags are defined:
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_createall() returns zero on success, non-zero on failure. If fsckpt_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_fsopen(3), fsckpt_intro(3)