VN_DEALLOCATE(9)       FreeBSD Kernel Developer's Manual      VN_DEALLOCATE(9)

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

     vnode(9), VOP_DEALLOCATE(9)

AUTHORS

     vn_deallocate and this manual page was written by Ka Ho Ng
     <khng@FreeBSD.org> under sponsorship from the FreeBSD Foundation.

FreeBSD 15.1-STABLE-HBSD        August 25, 2021               VN_DEALLOCATE(9)