---
name: "VOP_ALLOCATE"
section: "9freebsd"
platform: "linux"
package: "freebsd-manpages"
version: "12.2-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/VOP_ALLOCATE/9freebsd"
---

# VOP\_ALLOCATE(9freebsd)

allocate storage for a file

## NAME

**VOP\_ALLOCATE** – allocate storage for a file

## SYNOPSIS

**#include \<sys/param.h\>**

**#include \<sys/vnode.h\>**

*int*\

**VOP\_ALLOCATE**(*struct vnode \*vp*, *off\_t \*offset*, *off\_t \*len*);

## DESCRIPTION

This call allocates storage for a range of offsets in a file. It is used to implement the posix\_fallocate system call.

Its arguments are:

- *vp*

  The vnode of the file.

- *offset*

  The start of the range to allocate storage for in the file.

- *len*

  The length of the range to allocate storage for in the file.

The *offset* and *len* arguments are updated to reflect the portion of the range that still needs to be allocated on return. A partial allocation is considered a successful operation. The file's contents are not changed.

## LOCKS

The file should be exclusively locked on entry and will still be locked on exit.

## RETURN VALUES

Zero is returned if the call is successful, otherwise an appropriate error code is returned.

## ERRORS

- \[EFBIG\]

  An attempt was made to write a file that exceeds the process's file size limit or the maximum file size.

- \[ENOSPC\]

  The file system is full.

- \[EPERM\]

  An append-only flag is set on the file, but the caller is attempting to write before the current end of file.

## SEE ALSO

[vnode(9)](/vnode/9.md), [VOP\_READ(9)](/VOP_READ/9.md), [VOP\_WRITE(9)](/VOP_WRITE/9.md)
