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

# vinvalbuf(9freebsd)

flushes and invalidates all buffers associated with a vnode

## NAME

**vinvalbuf** – flushes and invalidates all buffers associated with a vnode

## SYNOPSIS

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

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

*int*\

**vinvalbuf**(*struct vnode \*vp*, *int flags*, *struct ucred \*cred*, *int slpflag*, *int slptimeo*);

## DESCRIPTION

The **vinvalbuf**() function invalidates all of the buffers associated with the given vnode. This includes buffers on the clean list and the dirty list. If the V\_SAVE flag is specified then the buffers on the dirty list are synced prior to being released. If there is a VM Object associated with the vnode, it is removed.

Its arguments are:

- *vp*

  A pointer to the vnode whose buffers will be invalidated.

- *flags*

  The only supported flag is V\_SAVE and it indicates that dirty buffers should be synced with the disk.

- *cred*

  The user credentials that are used to [VOP\_FSYNC(9)](/VOP_FSYNC/9.md) buffers if V\_SAVE is set.

- *slpflag*

  The slp flag that will be used in the priority of any sleeps in the function.

- *slptimeo*

  The timeout for any sleeps in the function.

## LOCKS

The vnode is assumed to be locked prior to the call and remains locked upon return.

*Giant* must be held by prior to the call and remains locked upon return.

## RETURN VALUES

A 0 value is returned on success.

## PSEUDOCODE

```
vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
error = vinvalbuf(devvp, V_SAVE, cred, 0, 0);
VOP_UNLOCK(devvp, 0);
if (error)
	return (error);
```

## ERRORS

- \[ENOSPC\]

  The file system is full. (With V\_SAVE)

- \[EDQUOT\]

  Disc quota exceeded. (With V\_SAVE)

- \[EWOULDBLOCK\]

  Sleep operation timed out. (See *slptimeo*)

- \[ERESTART\]

  A signal needs to be delivered and the system call should be restarted. (With PCATCH set in *slpflag*)

- \[EINTR\]

  The system has been interrupted by a signal. (With PCATCH set in *slpflag*)

## SEE ALSO

[tsleep(9)](/tsleep/9.md), [VOP\_FSYNC(9)](/VOP_FSYNC/9.md)

## AUTHORS

This manual page was written by Chad David ⟨*davidc@acns.ab.ca*⟩.
