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