Module gfapi_sys::glfs [] [src]

Structs

iovec

Enums

Struct_glfs
Struct_glfs_fd

Functions

glfs_access
glfs_chdir
glfs_chmod
glfs_chown
glfs_close
glfs_closedir
glfs_creat

This function opens a file on a virtual mount.

glfs_discard
glfs_discard_async
glfs_dup
glfs_fallocate
glfs_fchdir
glfs_fchmod
glfs_fchown
glfs_fdatasync
glfs_fdatasync_async
glfs_fgetxattr
glfs_fini

This function attempts to gracefully destroy glfs_t object. An attempt is made to wait for all background processing to complete before returning. glfs_fini() must be called after all operations on glfs_t is finished.

glfs_flistxattr
glfs_fremovexattr
glfs_from_glfd
glfs_fsetxattr
glfs_fstat
glfs_fsync
glfs_fsync_async
glfs_ftruncate
glfs_ftruncate_async
glfs_futimens
glfs_get_volfile

Get the volfile associated with the virtual mount Sometimes it's useful e.g. for scripts to see the volfile, so that they can parse it and find subvolumes to do things like split-brain resolution or custom layouts. The API here was specifically intended to make access e.g. from Python as simple as possible. Note that the volume must be started (not necessarily mounted) for this to work.

glfs_get_volumeid

This function when invoked for the first time sends RPC call to the the management server (glusterd) to fetch volume uuid and stores it in the glusterfs_context linked to the glfs object fs which can be used in the subsequent calls. Later it parses that UUID to convert it from cannonical string format into an opaque byte array and copy it into the volid array. Incase if either of the input parameters, volid or size, is NULL, number of bytes required to copy the volume UUID is returned.

glfs_getcwd
glfs_getxattr
glfs_init

This function initializes the glfs_t object. This consists of many steps: Spawn a poll-loop thread. Establish connection to management daemon and receive volume specification. Construct translator graph and initialize graph. Wait for initialization (connecting to all bricks) to complete.

glfs_lchown
glfs_lgetxattr
glfs_link
glfs_listxattr
glfs_llistxattr
glfs_lremovexattr
glfs_lseek
glfs_lsetxattr
glfs_lstat
glfs_lutimens
glfs_mkdir
glfs_mknod
glfs_new

Create a new 'virtual mount' object. This is most likely the very first function you will use. This function will create a new glfs_t (virtual mount) object in memory. On this newly created glfs_t, you need to be either set a volfile path (glfs_set_volfile) or a volfile server (glfs_set_volfile_server). The glfs_t object needs to be initialized with glfs_init() before you can start issuing file operations on it.

glfs_open

This function opens a file on a virtual mount.

glfs_opendir
glfs_posix_lock
glfs_pread
glfs_pread_async
glfs_preadv
glfs_preadv_async
glfs_pwrite
glfs_pwrite_async
glfs_pwritev
glfs_pwritev_async
glfs_read
glfs_read_async
glfs_readdir

glfs_readdir and glfs_readdirplus are NEITHER thread safe NOR re-entrant when called on the same directory handle. However they ARE thread safe AND re-entrant when called on different directory handles (which may be referring to the same directory too.)

glfs_readdir_r

glfs_readdir_r and glfs_readdirplus_r ARE thread safe AND re-entrant, but the interface has ambiguity about the size of dirent to be allocated before calling the APIs. 512 byte buffer (for dirent) is sufficient for all known systems which are tested againt glusterfs/gfapi, but may be insufficient in the future.

glfs_readdirplus
glfs_readdirplus_r

glfs_readdir_r and glfs_readdirplus_r ARE thread safe AND re-entrant, but the interface has ambiguity about the size of dirent to be allocated before calling the APIs. 512 byte buffer (for dirent) is sufficient for all known systems which are tested againt glusterfs/gfapi, but may be insufficient in the future.

glfs_readlink
glfs_readv
glfs_readv_async
glfs_realpath
glfs_removexattr
glfs_rename
glfs_rmdir
glfs_seekdir
glfs_set_logging

This function specifies logging parameters for the virtual mount. Default log file is /dev/null.

glfs_set_volfile

Specify the path to the volume specification file. If you are using a static volume specification file (without dynamic volume management abilities from the CLI), then specify the path to the volume specification file. This is incompatible with glfs_set_volfile_server().

glfs_set_volfile_server

Specify the list of addresses for management server. This function specifies the list of addresses for the management server (glusterd) to connect, and establish the volume configuration. The @volname parameter passed to glfs_new() is the volume which will be virtually mounted as the glfs_t object. All operations performed by the CLI at the management server will automatically be reflected in the 'virtual mount' object as it maintains a connection to glusterd and polls on configuration change notifications. This is incompatible with glfs_set_volfile().

glfs_set_xlator_option
glfs_setfsgid
glfs_setfsgroups
glfs_setfsuid
glfs_setxattr
glfs_stat
glfs_symlink
glfs_telldir
glfs_truncate
glfs_unlink
glfs_unset_volfile_server
glfs_utimens
glfs_write
glfs_write_async
glfs_writev
glfs_writev_async
glfs_zerofill
glfs_zerofill_async

Type Definitions

glfs_fd_t
glfs_io_cbk
glfs_t