xref: /freebsd/share/man/man9/vfs_busy.9 (revision 237890249500ead0799bc56cdcb861e3faec8f18)
18981fef8SAlfred Perlstein.\"
28981fef8SAlfred Perlstein.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
38981fef8SAlfred Perlstein.\"
48981fef8SAlfred Perlstein.\" Redistribution and use in source and binary forms, with or without
58981fef8SAlfred Perlstein.\" modification, are permitted provided that the following conditions
68981fef8SAlfred Perlstein.\" are met:
78981fef8SAlfred Perlstein.\" 1. Redistributions of source code must retain the above copyright
88981fef8SAlfred Perlstein.\"    notice(s), this list of conditions and the following disclaimer as
98981fef8SAlfred Perlstein.\"    the first lines of this file unmodified other than the possible
108981fef8SAlfred Perlstein.\"    addition of one or more copyright notices.
118981fef8SAlfred Perlstein.\" 2. Redistributions in binary form must reproduce the above copyright
128981fef8SAlfred Perlstein.\"    notice(s), this list of conditions and the following disclaimer in the
138981fef8SAlfred Perlstein.\"    documentation and/or other materials provided with the distribution.
148981fef8SAlfred Perlstein.\"
158981fef8SAlfred Perlstein.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
168981fef8SAlfred Perlstein.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
178981fef8SAlfred Perlstein.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
188981fef8SAlfred Perlstein.\" DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
198981fef8SAlfred Perlstein.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
208981fef8SAlfred Perlstein.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
218981fef8SAlfred Perlstein.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
228981fef8SAlfred Perlstein.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
238981fef8SAlfred Perlstein.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
248981fef8SAlfred Perlstein.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
258981fef8SAlfred Perlstein.\" DAMAGE.
268981fef8SAlfred Perlstein.\"
278981fef8SAlfred Perlstein.\" $FreeBSD$
288981fef8SAlfred Perlstein.\"
298981fef8SAlfred Perlstein.Dd July 8, 2001
308981fef8SAlfred Perlstein.Dt VFS_BUSY 9
318981fef8SAlfred Perlstein.Os
328981fef8SAlfred Perlstein.Sh NAME
338981fef8SAlfred Perlstein.Nm vfs_busy
3423789024SRuslan Ermilov.Nd "marks a mount point as busy"
358981fef8SAlfred Perlstein.Sh SYNOPSIS
3623789024SRuslan Ermilov.In sys/param.h
3723789024SRuslan Ermilov.In sys/mount.h
388981fef8SAlfred Perlstein.Ft int
390ef36920SAlfred Perlstein.Fn vfs_busy "struct mount *mp" "int flags" "struct mtx *interlkp" "struct proc *p"
408981fef8SAlfred Perlstein.Sh DESCRIPTION
418981fef8SAlfred PerlsteinThe
4223789024SRuslan Ermilov.Fn vfs_busy
4323789024SRuslan Ermilovfunction marks a mount point as busy.
4423789024SRuslan ErmilovThe purpose of this
4523789024SRuslan Ermilovfunction is to synchronize access to a mount point.
4623789024SRuslan ErmilovIt also delays unmounting by sleeping on mp if the
4723789024SRuslan Ermilov.Dv MNTK_UNMOUNT
4823789024SRuslan Ermilovflag is set in
4923789024SRuslan Ermilov.Fa mp->mnt_kern_flag
5023789024SRuslan Ermilovand the
5123789024SRuslan Ermilov.Dv LK_NOWAIT
5223789024SRuslan Ermilovflag is
5323789024SRuslan Ermilov.Em not
5423789024SRuslan Ermilovset.
558981fef8SAlfred Perlstein.Pp
568981fef8SAlfred PerlsteinIts arguments are:
5723789024SRuslan Ermilov.Bl -tag -xwidth ".Fa interlkp"
5823789024SRuslan Ermilov.It Fa mp
598981fef8SAlfred PerlsteinThe mount point to busy.
6023789024SRuslan Ermilov.It Fa flags
618981fef8SAlfred PerlsteinFlags controlling the operation of
6223789024SRuslan Ermilov.Fn vfs_busy .
6323789024SRuslan Ermilov.Bl -tag -xwidth ".Dv LK_NOWAIT"
6423789024SRuslan Ermilov.It Dv LK_NOWAIT
6523789024SRuslan Ermilovdo not sleep if
6623789024SRuslan Ermilov.Dv MNTK_UNMOUNT
6723789024SRuslan Ermilovis set.
6823789024SRuslan Ermilov.El
6923789024SRuslan Ermilov.It Fa interlkp
7023789024SRuslan ErmilovThe interlock mutex for
7123789024SRuslan Ermilov.Fa mp->mount_lock .
7223789024SRuslan ErmilovIf there is any chance
7323789024SRuslan Ermilovthe mount point is being unmounted and
7423789024SRuslan Ermilov.Dv LK_NOWAIT
7523789024SRuslan Ermilovis not set then
768981fef8SAlfred Perlsteininterlock must be valid locked mutex.
7723789024SRuslan Ermilov.It Fa p
788981fef8SAlfred PerlsteinThe process responsible for this call.
798981fef8SAlfred Perlstein.El
808981fef8SAlfred Perlstein.Sh LOCKS
8123789024SRuslan ErmilovIf
8223789024SRuslan Ermilov.Fa interlkp
8323789024SRuslan Ermilovis a valid pointer it must be locked on entry,
848981fef8SAlfred Perlsteinand it will not be unlocked even on error.
858981fef8SAlfred Perlstein.Sh RETURN VALUES
8623789024SRuslan ErmilovA 0 value is returned on success.
8723789024SRuslan ErmilovIf the mount point is being
8823789024SRuslan Ermilovunmounted
8923789024SRuslan Ermilov.Er ENOENT
9023789024SRuslan Ermilovwill always be returned.
918981fef8SAlfred Perlstein.Sh ERRORS
9223789024SRuslan Ermilov.Bl -tag -width Er
9323789024SRuslan Ermilov.It Bq Er ENOENT
9423789024SRuslan ErmilovThe mount point is being unmounted
9523789024SRuslan Ermilov.Dv ( MNTK_UNMOUNT
9623789024SRuslan Ermilovis set).
978981fef8SAlfred Perlstein.El
988981fef8SAlfred Perlstein.Sh AUTHORS
9923789024SRuslan ErmilovThis man page was written by
10023789024SRuslan Ermilov.An Chad David .
101