vfs_busy.9 (1efbe1a4be308848b05965d3c7a81dd14ca3e811) vfs_busy.9 (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

--- 12 unchanged lines hidden (view full) ---

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.\"
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

--- 12 unchanged lines hidden (view full) ---

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 November 2, 2008
29.Dd July 8, 2001
30.Dt VFS_BUSY 9
31.Os
32.Sh NAME
33.Nm vfs_busy
30.Dt VFS_BUSY 9
31.Os
32.Sh NAME
33.Nm vfs_busy
34.Nd "marks a mount point as busy"
34.Nd "Marks a mount point as busy."
35.Sh SYNOPSIS
35.Sh SYNOPSIS
36.In sys/param.h
37.In sys/mount.h
38.Ft int
36.Ft int
39.Fn vfs_busy "struct mount *mp" "int flags"
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
40.Sh DESCRIPTION
41The
43.Sh DESCRIPTION
44The
42.Fn vfs_busy
43function marks a mount point as busy.
44The purpose of this
45function is to synchronize access to a mount point.
46It also delays unmounting by sleeping on
47.Fa mp
48if the
49.Dv MNTK_UNMOUNT
50flag is set in
51.Fa mp->mnt_kern_flag
52and the
53.Dv LK_NOWAIT
54flag is
55.Em not
56set.
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.
57.Pp
58Its arguments are:
50.Pp
51Its arguments are:
59.Bl -tag -width ".Fa flags"
60.It Fa mp
52.Bl -tag -width interlkp
53.It Ar mp
61The mount point to busy.
54The mount point to busy.
62.It Fa flags
63Flags controlling how
64.Fn vfs_busy
65should act.
66.Bl -tag -width ".Dv MBF_MNTLSTLOCK"
67.It Dv MBF_NOWAIT
68do not sleep if
69.Dv MNTK_UNMOUNT
70is set.
71.It Dv MBF_MNTLSTLOCK
72drop the mountlist_mtx in the critical path.
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.
73.El
67.El
74.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.
75.Sh RETURN VALUES
71.Sh RETURN VALUES
76A 0 value is returned on success.
77If the mount point is being
78unmounted
79.Er ENOENT
80will always be returned.
72A 0 value is returned on success. If the mount point is being
73unmounted ENOENT will always be returned.
81.Sh ERRORS
74.Sh ERRORS
82.Bl -tag -width Er
83.It Bq Er ENOENT
84The mount point is being unmounted
85.Dv ( MNTK_UNMOUNT
86is set).
75.Bl -tag
76.It Bq ENOENT
77The mount point is being unmounted (MNTK_UNMOUNT is set).
87.El
88.Sh AUTHORS
78.El
79.Sh AUTHORS
89This manual page was written by
90.An Chad David Aq davidc@acns.ab.ca .
80This man page was written by Chad David.