VFS_LOCK_GIANTVFS_UNLOCK_GIANT
- conditionally lock and unlock Giant around entry into VFS
SYNOPSIS
#include <sys/param.h>
#include <sys/mount.h>
#include <sys/vnode.h> int
VFS_LOCK_GIANT (struct mount *mp); void
VFS_UNLOCK_GIANT (int vfslocked);
DESCRIPTION
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
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.
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
VFS_LOCK_GIANT ();
or
NDHASGIANT(9).
RETURN VALUES
VFS_LOCK_GIANT ();
returns a boolean indicating whether or not
Giant
was acquired.