NAME
vn_deallocate
—
zero and/or deallocate storage from a
file
SYNOPSIS
#include
<sys/param.h>
#include <sys/vnode.h>
int
vn_deallocate
(struct vnode *vp,
off_t *offset, off_t *length,
int flags, int ioflag,
struct ucred *active_cred, struct
ucred *file_cred);
DESCRIPTION
The
vn_deallocate
()
function zeros and/or deallocates backing storage space from a file. This
function only works on vnodes with VREG
type.
The arguments are:
- vp
- The vnode of the file.
- offset
- The starting offset of the operation range.
- length
- The length of the operation range. This must be greater than 0.
- flags
- The control flags of the operation. This should be set to 0 for now.
- ioflag
- Directives and hints to be given to the file system.
- active_cred
- The user credentials of the calling thread.
- file_cred
- The credentials installed on the file description pointing to the vnode or NOCRED.
The
ioflag
()
argument gives directives and hints to the file system. It may include one
or more of the following flags:
IO_NODELOCKED
- The vnode was locked before the call.
IO_RANGELOCKED
- Rangelock was owned around the call.
IO_NOMACCHECK
- Skip MAC checking in the call.
IO_SYNC
- Do I/O synchronously.
IO_DIRECT
- Attempt to bypass buffer cache.
*offset and *length are updated to reflect the unprocessed operation range of the call. For a successful completion, *length is updated to be the value 0, and *offset is incremented by the number of bytes zeroed before the end-of-file.
RETURN VALUES
Upon successful completion, the value 0 is returned; otherwise the appropriate error is returned.
SEE ALSO
AUTHORS
vn_deallocate
and this manual page was
written by Ka Ho Ng
<khng@FreeBSD.org>
under sponsorship from the FreeBSD Foundation.