---
name: "VOP_STRATEGY"
section: "9"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/VOP_STRATEGY"
---

# VOP\_STRATEGY(9)

read or write a file system buffer

## NAME

**VOP\_STRATEGY** – read or write a file system buffer

## SYNOPSIS

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

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

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

*int*\

**VOP\_STRATEGY**(*struct vnode \*vp*, *struct buf \*bp*);

## DESCRIPTION

The arguments are:

- *vp*

  The vnode that the buffer is for.

- *bp*

  The buffer to be read or written.

This call either reads or writes data from a file, depending on the value of *bp-\>b\_iocmd*.

The call may block.

## RETURN VALUES

Always zero. Errors should be signalled by setting the BIO\_ERROR bit in *bp-\>b\_ioflags* and setting *bp-\>b\_error* to the appropriate *errno* value.

## SEE ALSO

[errno(2)](/errno/2.md), [buf(9)](/buf/9.md), [vnode(9)](/vnode/9.md)

## AUTHORS

This manual page was written by Doug Rabson.
