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),
VOP_READ(9),
VOP_WRITE(9)