LLAPI_GROUP_LOCK(3)

NAME
llapi_group_lock, llapi_group_unlock, llapi_group_lock64, llapi_group_unlock64 - get and put a Lustre group lock.

SYNOPSIS
#include <lustre/lustreapi.h>

int llapi_group_lock(int fd, int gid);
int llapi_group_lock64(int fd, __u64 gid);

int llapi_group_unlock(int fd, int gid);
int llapi_group_unlock64(int fd, __u64 gid);

DESCRIPTION

The functions llapi_group_lock() and llapi_group_lock64() take a group lock on the file descriptor fd with group identifier gid (int or __u64 type) .

The functions llapi_group_unlock() and llapi_group_unlock64() release a group lock identified by group identifier gid (int or __u64 type) on the file descriptor fd.

The group lock is a whole file lock that blocks concurrent I/O originating from descriptors that have not been locked. Multiple processes can acquire a lock by specifying the same group identifier.

RETURN VALUES
llapi_group_lock(), llapi_group_lock64(), llapi_group_unlock() and llapi_group_unlock64() return 0 on success or a negative errno value on failure.

ERRORS

-EBADF
    fd is not a valid file descriptor.

-ENOTTY
    fd does not describe an object suitable for this request.

-EINVAL
    fd is already group locked with a different group identifier.

AVAILABILITY
llapi_group_lock(), llapi_group_unlock(), llapi_group_lock64() and llapi_group_unlock64() are part of the lustre(7) user application interface library. llapi_group_lock and llapi_group_unlock were added in releease 2.7.0. llapi_group_lock64 and llapi_group_unlock64 were added in release 2.15.0.

SEE ALSO
lustreapi(7)