Record structure fields

Table: FCL record structure fields briefly describes each field of the fcl_record structure and indicates the record types for which it is valid.

Table: FCL record structure fields

Field

Description

Validity

fr_reclen

Length of the FCL record. This includes length of the FCL record structure and length of the data stored immediately following the structure. This length should be used while traversing fcl records returned in the buffer by vxfs_fcl_read.

Valid for all records.

fr_inonum

The inode number of the file being changed. To generate the full path name of the changed object, the inode number and generation count (fr_inogen) can be used with vxfs_inotopath_gen.

Valid for all FCL records except when the record is FCL_EVNTMSK_CHG. For event mask change the file is implicitly the FCL file.

fr_op

The operation for this FCL record. For example, creation, unlink, write, file attributes change, or other change. fr_op takes on one of the values for the record types listed in Table 2-1.

Use this parameter to determine which fields of the FCL record are valid.

Valid for all records.

fr_time

The approximate time when the change was recorded in the FCL file. Use the ctime() call to interpret this field.

Valid for all records.

fr_inogen

The generation count of the changed file. The generation count in combination with the inode number (of the file) is passed to vxfs_inotopath_gen to provide the exact full path name of the object. Without the generation count, the returned path name can be a re-used inode.

Valid for all FCL records except for event mask changes and unlinks. For event mask changes, the inode number and generation count are implicit. For unlink, the generation count is not needed to get the filename via reverse name lookup, since it is already present with the record.

fr_pinonum

fr_pinogen

fr_filename

For FCL records like file remove or rename, where the directory entry is removed, the filename cannot be determined by reverse name lookup. Similarly in the case of link record, the filename cannot be determined unambiguously. Therefore in these cases, the filename, inode number, and generation count of the parent directory (containing the file being changed) is recorded. The parent directory inode (fr_pinonum) and generation count (fr_pinogen) can be used with the reverse name lookup API to identify the full path name of the parent directory. Adding the trailing filename yields the object's full name.

Valid when the FCL record is VX_FCL_UNLINK, VX_FCL_RENAME or VX_FCL_LINK. The unlink and rename; filename and the parent inode number; and generation count, contain information about the old file that was removed. For the link, they represent the new filename.

fr_cmdname

A short name of the command which opened the file represented by fr_inonum and fr_inogen.

Valid only when the FCL record is VX_FCL_FILEOPEN.

fr_stats

A pointer to an FCL_iostat record. The fcl_iostat record contains I/O statistics such as the number of reads / writes that happened on the file, average time for a read / write, etc. These point-in-time records can be used to compute the aggregate or average I/O statistics for a file over a period of time.

Valid only when the FCL record is VX_FCL_FILESTATS.

fr_oldmask

fr_newmask

These fields contain the old and new event masks, respectively. Each event mask is a "logical or" of a set of masks defined in fcl.h.

Valid only when the FCL record is VX_FCL_EVNTMASK_CHG.

fr_acsinfo

A pointer to an FCL_acsinfo structure. This structure contains information such as the user and group ID of the application that performed the particular operation, the process id and the ID of the accessing node.

Validity is determined by the fcl_acsinfovalid bit-field. It can potentially exist with all kinds of records. This is an optional field.