gpfs_iattr64_t structure
Contains attributes of a GPFS™ inode.
Library
GPFS Library (libgpfs.a for AIX®, libgpfs.so for Linux)
Structure
typedef struct gpfs_iattr64
{
int ia_version; /* this struct version */
int ia_reclen; /* sizeof this structure */
int ia_checksum; /* validity check on iattr struct */
gpfs_mode_t ia_mode; /* access mode */
gpfs_uid64_t ia_uid; /* owner uid */
gpfs_gid64_t ia_gid; /* owner gid */
gpfs_ino64_t ia_inode; /* file inode number */
gpfs_gen64_t ia_gen; /* inode generation number */
gpfs_nlink64_t ia_nlink; /* number of links */
gpfs_off64_t ia_size; /* file size in bytes */
gpfs_off64_t ia_blocks; /* 512 byte blocks of disk held by file */
gpfs_timestruc64_t ia_atime; /* time of last access */
unsigned int ia_winflags; /* window's flags (defined below) */
unsigned int ia_pad1; /* reserved space */
gpfs_timestruc64_t ia_mtime; /* time of last data modification */
unsigned int ia_flags; /* flags (defined below) */
unsigned char ia_repl_data; /* data replication factor */
unsigned char ia_repl_data_max; /* data replication max factor */
unsigned char ia_repl_meta; /* meta data replication factor */
unsigned char ia_repl_meta_max; /* meta data replication max factor */
gpfs_timestruc64_t ia_ctime; /* time of last status change */
int ia_blocksize; /* preferred block size for io */
unsigned int ia_pad3; /* reserved space */
gpfs_timestruc64_t ia_createtime; /* creation time */
gpfs_mask_t ia_mask; /* initial attribute mask (not used) */
int ia_pad4; /* reserved space */
unsigned int ia_reserved[GPFS_IA64_RESERVED]; /* reserved space */
unsigned int ia_xperm; /* extended attributes (defined below) */
gpfs_dev_t ia_dev; /* id of device containing file */
gpfs_dev_t ia_rdev; /* device id (if special file) */
unsigned int ia_pcacheflags; /* pcache inode bits */
gpfs_snapid64_t ia_modsnapid; /* snapshot id of last modification */
unsigned int ia_filesetid; /* fileset ID */
unsigned int ia_datapoolid; /* storage pool ID for data */
gpfs_ino64_t ia_inode_space_mask; /* inode space mask of this file system */
/* This value is saved in the iattr structure
during backup and used during restore */
unsigned int ia_unused[GPFS_IA64_UNUSED]; /* reserved space */
} gpfs_iattr64_t;
#ifdef GPFS_64BIT_INODES
#undef GPFS_IA_VERSION
#define GPFS_IA_VERSION GPFS_IA_VERSION64
#define gpfs_iattr_t gpfs_iattr64_t
#endif
/* Define flags for inode attributes */
#define GPFS_IAFLAG_SNAPDIR 0x0001 /* (obsolete) */
#define GPFS_IAFLAG_USRQUOTA 0x0002 /* inode is a user quota file */
#define GPFS_IAFLAG_GRPQUOTA 0x0004 /* inode is a group quota file */
#define GPFS_IAFLAG_ERROR 0x0008 /* error reading inode */
/* Define flags for inode replication attributes */
#define GPFS_IAFLAG_FILESET_ROOT 0x0010 /* root dir of a fileset */
#define GPFS_IAFLAG_NO_SNAP_RESTORE 0x0020 /* don't restore from snapshots */
#define GPFS_IAFLAG_FILESETQUOTA 0x0040 /* inode is a fileset quota file */
#define GPFS_IAFLAG_COMANAGED 0x0080 /* file data is co-managed */
#define GPFS_IAFLAG_ILLPLACED 0x0100 /* may not be properly placed */
#define GPFS_IAFLAG_REPLMETA 0x0200 /* metadata replication set */
#define GPFS_IAFLAG_REPLDATA 0x0400 /* data replication set */
#define GPFS_IAFLAG_EXPOSED 0x0800 /* may have data on suspended disks */
#define GPFS_IAFLAG_ILLREPLICATED 0x1000 /* may not be properly replicated */
#define GPFS_IAFLAG_UNBALANCED 0x2000 /* may not be properly balanced */
#define GPFS_IAFLAG_DATAUPDATEMISS 0x4000 /* has stale data blocks on
unavailable disk */
#define GPFS_IAFLAG_METAUPDATEMISS 0x8000 /* has stale metadata on
unavailable disk */
#define GPFS_IAFLAG_IMMUTABLE 0x00010000 /* Immutability */
#define GPFS_IAFLAG_INDEFRETENT 0x00020000 /* Indefinite retention */
#define GPFS_IAFLAG_SECUREDELETE 0x00040000 /* Secure deletion */
#define GPFS_IAFLAG_TRUNCMANAGED 0x00080000 /* dmapi truncate event enabled */
#define GPFS_IAFLAG_READMANAGED 0x00100000 /* dmapi read event enabled */
#define GPFS_IAFLAG_WRITEMANAGED 0x00200000 /* dmapi write event enabled */
#define GPFS_IAFLAG_APPENDONLY 0x00400000 /* AppendOnly only */
#define GPFS_IAFLAG_DELETED 0x00800000 /* inode has been deleted */
/* Define flags for window's attributes */
#define GPFS_IWINFLAG_ARCHIVE 0x0001 /* Archive */
#define GPFS_IWINFLAG_HIDDEN 0x0002 /* Hidden */
#define GPFS_IWINFLAG_NOTINDEXED 0x0004 /* Not content indexed */
#define GPFS_IWINFLAG_OFFLINE 0x0008 /* Off-line */
#define GPFS_IWINFLAG_READONLY 0x0010 /* Read-only */
#define GPFS_IWINFLAG_REPARSE 0x0020 /* Reparse point */
#define GPFS_IWINFLAG_SYSTEM 0x0040 /* System */
#define GPFS_IWINFLAG_TEMPORARY 0x0080 /* Temporary */
#define GPFS_IWINFLAG_COMPRESSED 0x0100 /* Compressed */
#define GPFS_IWINFLAG_ENCRYPTED 0x0200 /* Encrypted */
#define GPFS_IWINFLAG_SPARSE 0x0400 /* Sparse file */
#define GPFS_IWINFLAG_HASSTREAMS 0x0800 /* Has streams */
/* Define flags for extended attributes */
#define GPFS_IAXPERM_ACL 0x0001 /* file has acls */
#define GPFS_IAXPERM_XATTR 0x0002 /* file has extended attributes */
#define GPFS_IAXPERM_DMATTR 0x0004 /* file has dm attributes */
#define GPFS_IAXPERM_DOSATTR 0x0008 /* file has non-default dos attrs */
#define GPFS_IAXPERM_RPATTR 0x0010 /* file has restore policy attrs */
/* Define flags for pcache bits defined in the inode */
#define GPFS_ICAFLAG_CACHED 0x0001 /* "cached complete" */
#define GPFS_ICAFLAG_CREATE 0x0002 /* "created" */
#define GPFS_ICAFLAG_DIRTY 0x0004 /* "data dirty" */
#define GPFS_ICAFLAG_LINK 0x0008 /* "hard linked" */
#define GPFS_ICAFLAG_SETATTR 0x0010 /* "attr changed" */
#define GPFS_ICAFLAG_LOCAL 0x0020 /* "local" */
#define GPFS_ICAFLAG_APPEND 0x0040 /* "append" */
#define GPFS_ICAFLAG_STATE 0x0080 /* "has remote state" */
Description
The gpfs_iattr64_t structure contains the various attributes of a GPFS inode.
Members
- ia_version
- The version number of this structure.
- ia_reclen
- The size of this structure.
- ia_checksum
- The checksum for this gpfs_iattr64 structure.
- ia_mode
- The access mode for this inode.
- ia_uid
- The owner user ID for this inode.
- ia_gid
- The owner group ID for this inode.
- ia_inode
- The file inode number.
- ia_gen
- The inode generation number.
- ia_nlink
- The number of links for this inode.
- ia_size
- The file size in bytes.
- ia_blocks
- The number of 512 byte blocks of disk held by the file.
- ia_atime
- The time of last access.
- ia_winflags
- The Windows flags.
- ia_pad1
- Reserved space.
- ia_mtime
- The time of last data modification.
- ia_flags
- The flags defined for inode attributes.
- ia_repl_data
- The data replication factor.
- ia_repl_data_max
- The maximum data replication factor.
- ia_repl_meta
- The metadata replication factor.
- ia_repl_meta_max
- The maximum metadata replication factor.
- ia_ctime
- The time of last status change.
- ia_blocksize
- The preferred block size for I/O.
- ia_pad3
- Reserved space.
- ia_createtime
- The creation time.
- ia_mask
- The initial attribute mask (not used).
- ia_pad4
- Reserved space.
- ia_reserved
- Reserved space.
- ia_xperm
- Indicator - nonzero if file has extended ACL.
- ia_dev
- The ID of the device containing the file.
- ia_rdev
- The ID of the device.
- ia_pcacheflags
- The pcache inode bits.
- ia_modsnapid
- Internal snapshot ID indicating the last time that the file was modified. Internal snapshot IDs for the current snapshots are displayed by the mmlssnapshot command.
- ia_filesetid
- The fileset ID for the inode.
- ia_datapoolid
- The storage pool ID for data for the inode.
- ia_inode_space_mask
- The inode space mask of this file system. This value is saved in the iattr structure during backup and used during restore.
- ia_unused
- Reserved space.
Examples
See the gpfs_iattr_t example in /usr/lpp/mmfs/samples/util/tsinode.c.
Location
/usr/lpp/mmfs/lib/libgpfs.a for AIX
/usr/lpp/mmfs/lib/libgpfs.so for Linux