carta
VOP_ISLOCKED(9freebsd)

VOP_ISLOCKED9freebsd

Serialize access to a vnode

Usage

int

int

int

int

Overview

These calls are used to serialize access to the file system, such as to prevent two writes to the same file from happening at the same time.

The arguments are:

vp

The vnode being locked or unlocked.

flags

One of the lock request types:

LK_SHARED

Shared lock.

LK_EXCLUSIVE

Exclusive lock.

LK_UPGRADE

Shared-to-exclusive upgrade.

LK_DOWNGRADE

Exclusive-to-shared downgrade.

LK_RELEASE

Release any type of lock.

LK_DRAIN

Wait for all lock activity to end.

The lock type may be or'ed with these lock flags:

LK_NOWAIT

Do not sleep to wait for lock.

LK_SLEEPFAIL

Sleep, then return failure.

LK_CANRECURSE

Allow recursive exclusive lock.

LK_NOWITNESS

Instruct witness(4) to ignore this instance.

The lock type may be or'ed with these control flags:

LK_INTERLOCK

Specify when the caller already has a simple lock (VOP_LOCK() will unlock the simple lock after getting the lock).

LK_RETRY

Retry until locked.

Kernel code should use vn_lock() to lock a vnode rather than calling VOP_LOCK() directly. vn_lock() also does not want a thread specified as argument but it assumes curthread to be used.

Return values

Zero is returned on success, otherwise an error is returned.

History

  • Debian 13 (Trixie) to Debian 11 (Bullseye): the text shown here
  • Debian 10 (Buster)
  • Debian 9 (Stretch)
  • Debian 8 (Jessie)
  • Debian 7 (Wheezy)
  • Debian 6.0 (Squeeze)
  • Debian 5.0 (Lenny)

Authors

This manual page was written by Doug Rabson.

From freebsd-manpages 12.2-2 in Debian 13 (Trixie). Parsed by carta from the page's mdoc source.