Provided by: freebsd-manpages_8.2-1_all
VFS_LOCK_GIANT, VFS_UNLOCK_GIANT — conditionally lock and unlock Giant
around entry into VFS
VFS_LOCK_GIANT(struct mount *mp);
VFS_LOCK_GIANT() will conditionally acquire the Giant lock if the file
system referenced by mp is marked as MPSAFE or not, returning a flag
indicating whether Giant was set, which may later be passed to
VFS_UNLOCK_GIANT(). The value of mp will typically be derived from the
mount pointer in a vnode on which a VFS operation will be performed.
VFS_UNLOCK_GIANT() conditionally releases the Giant lock if the passed
vfslocked argument is non-zero. It is expected that the argument will be
derived from the return values of VFS_LOCK_GIANT() or NDHASGIANT(9).
VFS_LOCK_GIANT() returns a boolean indicating whether or not Giant was
mutex(9), NDHASGIANT(9), vnode(9)
MPSAFE VFS support for FreeBSD was implemented by Jeff Roberson.
This manual page was written by Robert Watson.
Non-MPSAFE file systems exist, requiring callers conditional locking and
unlocking of Giant.