fsckpt_info - return status information on a Storage Checkpoint
int fsckpt_info(void *fshandle, char *ckptname, int ckptindex, int reset, struct c_info *cip);
fsckpt_info() returns status information from a file system handle fshandle associated with the Storage Checkpoint specified by ckptname.
The structure c_info pointed to by cfp contains the following fields:
unsigned int ci_version; /* api version number */ unsigned int ci_flags; /* misc. flags */ struct timeval ci_ctime; /* ckpt creation time */ struct timeval ci_mtime; /* ckpt modification time */ unsigned long long ci_ninodes; /* number of inodes */ unsigned long long ci_nblocks; /* number of allocated blocks*/ unsigned long ci_read; /* number of reads */ unsigned long ci_write; /* number of writes */ unsigned long ci_push; /* number of pushes */ unsigned long ci_pull; /* number of pulls */ unsigned long ci_move; /* number of moves */ unsigned long ci_move_all; /* number of move alls */ unsigned long ci_merge_all; /* number of merge alls unsigned long ci_logged_push; /* number of logged pushes */ unsigned long ci_clone_enospc; /* number of enospc on writes */ unsigned long ci_overlay_bmap; /* number of overlay bmaps */ char ci_name[FSCKPT_NAMESZ]; /* ckpt name */ char i_signature[FSCKPT_NAMESZ]; /* ckpt signature */ unsigned int ci_reserved; /* reserved for future };
where flags are:
All fields containing the number of blocks are given as 1K blocks.
CF_DEPENDENT Indicates that the Storage Checkpoint file has dependencies on other Storage Checkpoint files or the primary file in order to establish its full image. A CF_DEPENDENT file also indicates that this file has a map of the blocks changed which does not include every block in the file.
The contents of the structure pointed to by cip includes the following members:
unsigned int ci_version; /* API version number */ struct timeval ci_ctime; /* ckpt creation time */ struct timeval ci_mtime; /* ckpt modification time */ unsigned int ci_ninodes; /* number of inodes */ unsigned int ci_nblocks; /* number of blocks allocated */ int ci_flags; /* miscellaneous flags */ char ci_name[FSCKPT_.SH NAMESZ]; /* ckpt name */
where flags are:
All fields containing number of blocks are given as 1K blocks.
CI_DELAYED Used in conjunction with CI_NODATA, the Storage Checkpoint is marked for delayed conversion to nodata. CI_INCONTEXT The Storage Checkpoint has an application in-context. CI_LARGEFILES The Storage Checkpoint supports files larger than 2 gigabytes in size. Applications must be largefiles enabled (compiled to handle 64-bit file offsets) to properly access this Storage Checkpoint. Applications which are not large file enabled cannot operate on a CI_LARGEFILES Storage Checkpoint. CI_MOUNTED The Storage Checkpoint is mounted. CI_NODATA The Storage Checkpoint contains no data. CI_NOMOUNT The Storage Checkpoint cannot be mounted and cannot allow processes to be in-context. CI_REMOVABLE The Storage Checkpoint was created with the CC_REMOVE flag. This means that this Storage Checkpoint could self-destruct on full file systems.
The ckptindex field is meaningful only when used on the primary file system image. A call with a value other than zero on a Storage Checkpoint name results in a error. When used on the primary image, this field is used to obtain status information on Storage Checkpoints by their creation time with a value of one representing the newest Storage Checkpoint, a value of two the second newest Storage Checkpoint and so forth. If the index value passed to this call is larger than the number of Storage Checkpoints, then an ENOENT error is returned. The ckptindex argument can be used to list all Storage Checkpoints in the file system.
The int reset flag resets the values of all statistics for the specified Storage Checkpoint to zero. These statistics include the number of reads, pushes, pulls, etc. that are found in the struct c_info fields.
fsckpt_finfo() returns zero on success, non-zero on failure.
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. ENOENT The specified Storage Checkpoint ckptname does not exist.
fsckptadm(1M), fsckpt_cntl(3), fsckpt_create(3), fsckpt_createall(3), fsckpt_fsopen(3), fsckpt_intro(3), fsckpt_setcontext(3)