VFS_LOCK_GIANT(9) conditionally lock and unlock Giant around entry into VFS

Other Alias

VFS_UNLOCK_GIANT

SYNOPSIS

In sys/param.h In sys/mount.h In sys/vnode.h Ft int Fn VFS_LOCK_GIANT struct mount *mp Ft void Fn VFS_UNLOCK_GIANT int vfslocked

DESCRIPTION

Fn VFS_LOCK_GIANT will conditionally acquire the Giant lock if the file system referenced by Fa mp is marked as MPSAFE or not, returning a flag indicating whether Giant was set, which may later be passed to Fn VFS_UNLOCK_GIANT . The value of Fa mp will typically be derived from the mount pointer in a Vt vnode on which a VFS operation will be performed.

Fn VFS_UNLOCK_GIANT conditionally releases the Giant lock if the passed Fa vfslocked argument is non-zero. It is expected that the argument will be derived from the return values of Fn VFS_LOCK_GIANT or NDHASGIANT(9).

RETURN VALUES

Fn VFS_LOCK_GIANT returns a boolean indicating whether or not Giant was acquired.

AUTHORS

An -nosplit MPSAFE VFS support for Fx was implemented by An Jeff Roberson .

This manual page was written by An Robert Watson .

BUGS

Non-MPSAFE file systems exist, requiring callers conditional locking and unlocking of Giant