gpfs_stat_inode_with_xattrs() subroutine
Seeks the specified inode and retrieves that inode and its extended attributes from the inode scan.
Library
GPFS Library (libgpfs.a for AIX®, libgpfs.so for Linux®)
Synopsis
#include <gpfs.h>
int gpfs_stat_inode_with_xattrs(gpfs_iscan_t *iscan,
gpfs_ino_t ino,
gpfs_ino_t termIno,
const gpfs_iattr_t **iattr,
const char **xattrBuf,
unsigned int *xattrBufLen);
Description
The gpfs_stat_inode_with_xattrs() subroutine is used to seek the specified inode and to retrieve that inode and its extended attributes from the inode scan. This subroutine combines gpfs_seek_inode() and get_next_inode(), but will only return the specified inode.
The data returned by gpfs_next_inode() is overwritten by subsequent calls to gpfs_next_inode(), gpfs_seek_inode(), or gpfs_stat_inode_with_xattrs().
The termIno parameter provides a way to partition an inode scan such that it can be run on more than one node. It is only used by this call to control prefetching.
The returned values for xattrBuf and xattrBufLen must be provided to gpfs_next_xattr() to obtain the extended attribute names and values. The buffer used for the extended attributes is overwritten by subsequent calls to gpfs_next_inode(), gpfs_seek_inode(), or gpfs_stat_inode_with_xattrs().
- libgpfs.a for AIX
- libgpfs.so for Linux
Parameters
- iscan
- A pointer to an inode scan descriptor.
- ino
- The inode number to be returned.
- termIno
- Prefetches inodes up to this inode. The caller might specify maxIno from gpfs_open_inodescan() or 0 to allow prefetching over the entire inode file.
- iattr
- A pointer to the returned pointer to the file's iattr.
- xattrBuf
- A pointer to the returned pointer to the xattr buffer.
- xattrBufLen
- The returned length of the xattr buffer.
Exit status
If the gpfs_stat_inode_with_xattrs() subroutine is successful, it returns a value of 0 and the iattr parameter is set to point to gpfs_iattr_t. If the gpfs_stat_inode_with_xattrs() subroutine is successful, but there are no more inodes before the termIno parameter, or if the requested inode does not exist, it returns a value of 0 and the iattr parameter is set to NULL.
If the gpfs_stat_inode_with_xattrs() subroutine is unsuccessful, it returns a value of -1 and sets the global error variable errno to indicate the nature of the error.
Exceptions
None.
Error status
Error codes include but are not limited to the following:
- EPERM
- The caller must have superuser privilege.
- ENOSYS
- The gpfs_stat_inode_with_xattrs() subroutine is not supported under the current file system format.
- ESTALE
- The cached file system information was not valid.
- ENOMEM
- The buffer is too small.
- GPFS_E_INVAL_ISCAN
- Incorrect parameters.
- GPFS_E_HOLE_IN_IFILE
- The inode scan is reading only the inodes that have been copied to a snapshot and this inode has not yet been copied.
Location
/usr/lpp/mmfs/lib/libgpfs.a for AIX
/usr/lpp/mmfs/lib/libgpfs.so for Linux