xref: /freebsd/share/man/man9/vfs_busy.9 (revision 8981fef84cb9609bf20d30417a203d8d9a7349f8)
1.\"
2.\" Copyright (C) 2001 Chad David <davidc@acns.ab.ca>. All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice(s), this list of conditions and the following disclaimer as
9.\"    the first lines of this file unmodified other than the possible
10.\"    addition of one or more copyright notices.
11.\" 2. Redistributions in binary form must reproduce the above copyright
12.\"    notice(s), this list of conditions and the following disclaimer in the
13.\"    documentation and/or other materials provided with the distribution.
14.\"
15.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY
16.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17.\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18.\" DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE LIABLE FOR ANY
19.\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20.\" (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21.\" SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22.\" CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
25.\" DAMAGE.
26.\"
27.\" $FreeBSD$
28.\"
29.Dd July 8, 2001
30.Dt VFS_BUSY 9
31.Os
32.Sh NAME
33.Nm vfs_busy
34.Nd "Marks a mount point as busy."
35.Sh SYNOPSIS
36.Ft int
37.Fo vfs_busy
38.Fa "struct mount *mp"
39.Fa "int flags"
40.Fa "struct mtx *interlkp"
41.Fa "struct proc *p"
42.Fc
43.Sh DESCRIPTION
44The
45.Nm
46function marks a mount point as busy.  The purpose of this
47function is to synchronize access to a mount point.  It also
48delays unmounting by sleeping on mp if the MNTK_UNMOUNT flag
49is set in mp->mnt_kern_flag and the LK_NOWAIT flag is NOT set.
50.Pp
51Its arguments are:
52.Bl -tag -width interlkp
53.It Ar mp
54The mount point to busy.
55.It Ar flags
56Flags controlling the operation of
57.Nm
58.
59.Pp
60LK_NOWAIT - do not sleep if MNTK_UNMOUNT is set.
61.It Ar interlkp
62The interlock mutex for mp->mount_lock.  If there is any chance
63the mount point is being unmounted and LK_NOWAIT is not set then
64interlock must be valid locked mutex.
65.It Ar p
66The process responsible for this call.
67.El
68.Sh LOCKS
69If interlkp is a valid pointer it must be locked on entry,
70and it will not be unlocked even on error.
71.Sh RETURN VALUES
72A 0 value is returned on success.  If the mount point is being
73unmounted ENOENT will always be returned.
74.Sh ERRORS
75.Bl -tag
76.It Bq ENOENT
77The mount point is being unmounted (MNTK_UNMOUNT is set).
78.El
79.Sh AUTHORS
80This man page was written by Chad David.
81