1*ea41f49fSJohn Baldwin.\" -*- nroff -*- 2*ea41f49fSJohn Baldwin.\" 3*ea41f49fSJohn Baldwin.\" Copyright (c) 2013 Advanced Computing Technologies LLC 4*ea41f49fSJohn Baldwin.\" Written by: John H. Baldwin <jhb@FreeBSD.org> 5*ea41f49fSJohn Baldwin.\" All rights reserved. 6*ea41f49fSJohn Baldwin.\" 7*ea41f49fSJohn Baldwin.\" Redistribution and use in source and binary forms, with or without 8*ea41f49fSJohn Baldwin.\" modification, are permitted provided that the following conditions 9*ea41f49fSJohn Baldwin.\" are met: 10*ea41f49fSJohn Baldwin.\" 1. Redistributions of source code must retain the above copyright 11*ea41f49fSJohn Baldwin.\" notice, this list of conditions and the following disclaimer. 12*ea41f49fSJohn Baldwin.\" 2. Redistributions in binary form must reproduce the above copyright 13*ea41f49fSJohn Baldwin.\" notice, this list of conditions and the following disclaimer in the 14*ea41f49fSJohn Baldwin.\" documentation and/or other materials provided with the distribution. 15*ea41f49fSJohn Baldwin.\" 16*ea41f49fSJohn Baldwin.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17*ea41f49fSJohn Baldwin.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*ea41f49fSJohn Baldwin.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*ea41f49fSJohn Baldwin.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20*ea41f49fSJohn Baldwin.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*ea41f49fSJohn Baldwin.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22*ea41f49fSJohn Baldwin.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*ea41f49fSJohn Baldwin.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24*ea41f49fSJohn Baldwin.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25*ea41f49fSJohn Baldwin.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*ea41f49fSJohn Baldwin.\" SUCH DAMAGE. 27*ea41f49fSJohn Baldwin.\" 28*ea41f49fSJohn Baldwin.\" $FreeBSD$ 29*ea41f49fSJohn Baldwin.\" 30*ea41f49fSJohn Baldwin.Dd October 3, 2013 31*ea41f49fSJohn Baldwin.Dt VOP_ADVISE 9 32*ea41f49fSJohn Baldwin.Os 33*ea41f49fSJohn Baldwin.Sh NAME 34*ea41f49fSJohn Baldwin.Nm VOP_ADVISE 35*ea41f49fSJohn Baldwin.Nd apply advice about use of file data 36*ea41f49fSJohn Baldwin.Sh SYNOPSIS 37*ea41f49fSJohn Baldwin.In sys/param.h 38*ea41f49fSJohn Baldwin.In sys/vnode.h 39*ea41f49fSJohn Baldwin.Ft int 40*ea41f49fSJohn Baldwin.Fn VOP_ADVISE "struct vnode *vp" "off_t start" "off_t end" "int advice" 41*ea41f49fSJohn Baldwin.Sh DESCRIPTION 42*ea41f49fSJohn BaldwinThis call applies advice for a range of a file's data. 43*ea41f49fSJohn BaldwinIt is used to implement the 44*ea41f49fSJohn Baldwin.Xr posix_fadvise 45*ea41f49fSJohn Baldwinsystem call. 46*ea41f49fSJohn Baldwin.Pp 47*ea41f49fSJohn BaldwinIts arguments are: 48*ea41f49fSJohn Baldwin.Bl -tag -width offset 49*ea41f49fSJohn Baldwin.It Fa vp 50*ea41f49fSJohn BaldwinThe vnode of the file. 51*ea41f49fSJohn Baldwin.It Fa start 52*ea41f49fSJohn BaldwinThe start of the range of file data. 53*ea41f49fSJohn Baldwin.It Fa end 54*ea41f49fSJohn BaldwinThe end of the range of file data. 55*ea41f49fSJohn Baldwin.It Fa advice 56*ea41f49fSJohn BaldwinThe type of operation to apply to the file data. 57*ea41f49fSJohn BaldwinPossible values are: 58*ea41f49fSJohn Baldwin.Bl -tag -width POSIX_FADV_WILLNEED 59*ea41f49fSJohn Baldwin.It Dv POSIX_FADV_WILLNEED 60*ea41f49fSJohn BaldwinInitiate an asynchronous read of the file data if it is not already resident. 61*ea41f49fSJohn Baldwin.It Dv POSIX_FADV_DONTNEED 62*ea41f49fSJohn BaldwinDecrease the in-memory priority of clean file data or discard clean file data. 63*ea41f49fSJohn Baldwin.El 64*ea41f49fSJohn Baldwin.El 65*ea41f49fSJohn Baldwin.Pp 66*ea41f49fSJohn BaldwinIf the 67*ea41f49fSJohn Baldwin.Fa start 68*ea41f49fSJohn Baldwinand 69*ea41f49fSJohn Baldwin.Fa end 70*ea41f49fSJohn Baldwinoffsets are both zero, 71*ea41f49fSJohn Baldwinthen the operation should be applied to the entire file. 72*ea41f49fSJohn BaldwinNote that this call is advisory only and may perform the requested 73*ea41f49fSJohn Baldwinoperation on a subset of the requested range 74*ea41f49fSJohn Baldwin.Pq including not performing it at all 75*ea41f49fSJohn Baldwinand still return success. 76*ea41f49fSJohn Baldwin.Sh LOCKS 77*ea41f49fSJohn BaldwinThe file should be unlocked on entry. 78*ea41f49fSJohn Baldwin.Sh RETURN VALUES 79*ea41f49fSJohn BaldwinZero is returned if the call is successful, otherwise an appropriate 80*ea41f49fSJohn Baldwinerror code is returned. 81*ea41f49fSJohn Baldwin.Sh ERRORS 82*ea41f49fSJohn Baldwin.Bl -tag -width Er 83*ea41f49fSJohn Baldwin.It Bq Er EINVAL 84*ea41f49fSJohn BaldwinAn invalid value was given for 85*ea41f49fSJohn Baldwin.Fa advice . 86*ea41f49fSJohn Baldwin.El 87*ea41f49fSJohn Baldwin.Sh SEE ALSO 88*ea41f49fSJohn Baldwin.Xr vnode 9 89