VOP_DEALLOCATE(9)

πŸ“¦ version 15.1, in freebsd 14.5, freebsd 15.1, nixpkgs unstable

πŸ’– NAME πŸ’–

VOP_DEALLOCATE β€” zero and/or deallocate storage from a file. Welcome to VOP_DEALLOCATE(9) from the Kernel Developer's Manual, bestie β€” this is your kernel-devtools moment ✨.

🌸 SYNOPSIS 🌸

#include <sys/param.h>
#include <sys/vnode.h>

int
VOP_DEALLOCATE(struct vnode *vp, off_t *offset, off_t *len, int flags,
    int ioflag, struct ucred *cred);

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so this VOP call zeroes/deallocates storage for an offset range in a file. It is used to implement the fspacectl(2) system call β€” that’s the whole reason this VOP exists, no cap 🫢.

Its arguments are:

  • vp β€” the vnode of the file.
  • offset β€” the start of the range to deallocate storage in the file.
  • len β€” the length of the range to deallocate storage in the file.
  • flags β€” the flags of this call. This should be set to 0 for now.
  • ioflag β€” directives and hints to be given to the file system.
  • cred β€” the credentials of the caller.

*offset and *len are updated to reflect the portion of the range that still needs to be zeroed/deallocated on return. A partial result is considered a successful operation. For a non-partial successful completion, *len is updated to be the value 0, and *offset is incremented by the number of bytes zeroed before the end-of-file. πŸ’…

πŸ”’ LOCKS πŸ”’

The vnode should be locked on entry and will still be locked on exit. Keep that lock energy, bestie β€” it stays locked the whole time ⭐.

🌈 RETURN VALUES 🌈

Zero is returned if the call is successful, otherwise an appropriate error code is returned. Fr fr, 0 is the slay outcome ✨.

πŸ’€ ERRORS πŸ’€

  • [EINVAL] β€” Invalid offset, len or flags parameters are passed into this VOP call.
  • [ENODEV] β€” The vnode type is not supported by this VOP call.
  • [ENOSPC] β€” The file system is full.
  • [EPERM] β€” An append-only flag is set on the file, but the caller is attempting to zero before the current end of file.

🫢 SEE ALSO 🫢

  • vnode(9) β€” iconic supporting character, obviously πŸ’œ

πŸ‘‘ AUTHORS πŸ‘‘

VOP_DEALLOCATE and this manual page was written by Ka Ho Ng <khng@FreeBSD.org> under sponsorship from the FreeBSD Foundation. Respect the author, bestie πŸŽ€.

πŸ’– Cute sign-off: this page is from Debian, dated August 25, 2021, and it’s for VOP_DEALLOCATE(9) β€” mwah, bestie πŸ“.

πŸ“¦ where this page comes from