Visit Our UNIX and Linux User Community

Linux and UNIX Man Pages

Test Your Knowledge in Computers #26
Difficulty: Easy
IPv6 addresses are 256 bits in length.
True or False?
Linux & Unix Commands - Search Man Pages

dlm_unlock(3) [centos man page]

DLM_UNLOCK(3)						     Library Functions Manual						     DLM_UNLOCK(3)

NAME
dlm_unlock - unlock a DLM lock SYNOPSIS
#include <libdlm.h> int dlm_unlock(uint32_t lkid, uint32_t flags, struct dlm_lksb *lksb, void *astarg); int dlm_unlock_wait(uint32_t lkid, uint32_t flags, struct dlm_lksb *lksb); DESCRIPTION
dlm_unlock() unlocks a lock previously acquired by dlm_lock and its variants. Unless dlm_unlock_wait() is used unlocks are also asynchronous. The AST routine is called when the resource is successfully unlocked (see below). lkid Lock ID as returned in the lksb flags flags affecting the unlock operation: LKF_CANCEL Cancel a pending lock or conversion. This returns the lock to it's previously granted mode (in case of a conversion) or unlocks it (in case of a waiting lock). LKF_IVVALBLK Invalidate value block LKF_FORCEUNLOCK Unlock the lock even if it's waiting. lksb LKSB to return status and value block information. astarg New parameter to be passed to the completion AST. The completion AST routine is the last completion AST routine specified in a dlm_lock call. If dlm_lock_wait() was the last routine to issue a lock, dlm_unlock_wait() must be used to release the lock. If dlm_lock() was the last routine to issue a lock then either dlm_unlock() or dlm_unlock_wait() may be called. Return values 0 is returned if the call completed successfully. If not, -1 is returned and errno is set to one of the following: EINVAL An invalid parameter was passed to the call (eg bad lock mode or flag) EINPROGRESS The lock is already being unlocked EBUSY The lock is currently being locked or converted ENOTEMPTY An attempt to made to unlock a parent lock that still has child locks. ECANCEL A lock conversion was successfully cancelled EUNLOCK An unlock operation completed successfully (sb_status only) EFAULT The userland buffer could not be read/written by the kernel If an error is returned in the AST, then lksb.sb_status is set to the one of the above numbers instead of zero. EXAMPLE
int status; struct dlm_lksb lksb; status = dlm_lock_wait(LKM_EXMODE, &lksb, LKF_NOQUEUE, "MyLock", strlen("MyLock"), 0, // Parent, NULL, // bast arg NULL, // bast routine, NULL); // Range if (status == 0) dlm_unlock_wait(lksb.sb_lkid, 0, &lksb); SEE ALSO
libdlm(3), dlm_lock(3), dlm_open_lockspace(3), dlm_create_lockspace(3), dlm_close_lockspace(3), dlm_release_lockspace(3) libdlm functions July 5, 2007 DLM_UNLOCK(3)

Check Out this Related Man Page

DLM_UNLOCK(3)						     Library Functions Manual						     DLM_UNLOCK(3)

NAME
dlm_unlock - unlock a DLM lock SYNOPSIS
#include <libdlm.h> int dlm_unlock(uint32_t lkid, uint32_t flags, struct dlm_lksb *lksb, void *astarg); int dlm_unlock_wait(uint32_t lkid, uint32_t flags, struct dlm_lksb *lksb); DESCRIPTION
dlm_unlock() unlocks a lock previously acquired by dlm_lock and its variants. Unless dlm_unlock_wait() is used unlocks are also asynchronous. The AST routine is called when the resource is successfully unlocked (see below). lkid Lock ID as returned in the lksb flags flags affecting the unlock operation: LKF_CANCEL Cancel a pending lock or conversion. This returns the lock to it's previously granted mode (in case of a conversion) or unlocks it (in case of a waiting lock). LKF_IVVALBLK Invalidate value block LKF_FORCEUNLOCK Unlock the lock even if it's waiting. lksb LKSB to return status and value block information. astarg New parameter to be passed to the completion AST. The completion AST routine is the last completion AST routine specified in a dlm_lock call. If dlm_lock_wait() was the last routine to issue a lock, dlm_unlock_wait() must be used to release the lock. If dlm_lock() was the last routine to issue a lock then either dlm_unlock() or dlm_unlock_wait() may be called. Return values 0 is returned if the call completed successfully. If not, -1 is returned and errno is set to one of the following: EINVAL An invalid parameter was passed to the call (eg bad lock mode or flag) EINPROGRESS The lock is already being unlocked EBUSY The lock is currently being locked or converted ENOTEMPTY An attempt to made to unlock a parent lock that still has child locks. ECANCEL A lock conversion was successfully cancelled EUNLOCK An unlock operation completed successfully (sb_status only) EFAULT The userland buffer could not be read/written by the kernel If an error is returned in the AST, then lksb.sb_status is set to the one of the above numbers instead of zero. EXAMPLE
int status; struct dlm_lksb lksb; status = dlm_lock_wait(LKM_EXMODE, &lksb, LKF_NOQUEUE, "MyLock", strlen("MyLock"), 0, // Parent, NULL, // bast arg NULL, // bast routine, NULL); // Range if (status == 0) dlm_unlock_wait(lksb.sb_lkid, 0, &lksb); SEE ALSO
libdlm(3), dlm_lock(3), dlm_open_lockspace(3), dlm_create_lockspace(3), dlm_close_lockspace(3), dlm_release_lockspace(3) libdlm functions July 5, 2007 DLM_UNLOCK(3)

Featured Tech Videos