---
title: buf_invalidateblks
framework: Kernel
role: symbol
role_heading: Function
platforms: [macOS 10.4+]
path: kernel/1561910-buf_invalidateblks
---

# buf_invalidateblks

Invalidate all the blocks associated with a vnode.

## Declaration

```occ
int buf_invalidateblks(vnode_t vp, int flags, int slpflag, int slptimeo);
```

## Parameters

- `bp`: The buffer whose data to invalidate.
- `flags`: BUF_WRITE_DATA: write dirty data to disk with VNOP_BWRITE() before kicking buffer cache entries out. BUF_SKIP_META: do not invalidate metadata blocks.
- `slpflag`: Flags to pass to "msleep" while waiting to acquire busy buffers.
- `slptimeo`: Timeout in "hz" (1/100 second) to wait for a buffer to become unbusy before waking from sleep and re-starting the scan.

## Return Value

Return Value 0 for success, error values from msleep().

## Discussion

Discussion This function does for all blocks associated with a vnode what buf_invalblkno does for one block. Again, it will only be able to invalidate data which were populated with traditional buffer cache routines, i.e. by buf_getblk() and callers thereof. Unlike buf_invalblkno(), it can be made to write dirty data to disk rather than casting it aside.

## See Also

### Buffers

- [buf_alloc](kernel/1561906-buf_alloc.md)
- [buf_attr](kernel/1561894-buf_attr.md)
- [buf_bawrite](kernel/1561823-buf_bawrite.md)
- [buf_bdwrite](kernel/1561858-buf_bdwrite.md)
- [buf_biodone](kernel/1561914-buf_biodone.md)
- [buf_biowait](kernel/1561908-buf_biowait.md)
- [buf_blkno](kernel/1561926-buf_blkno.md)
- [buf_bread](kernel/1561851-buf_bread.md)
- [buf_breadn](kernel/1561873-buf_breadn.md)
- [buf_brelse](kernel/1561897-buf_brelse.md)
- [buf_bwrite](kernel/1561886-buf_bwrite.md)
- [buf_callback](kernel/1561902-buf_callback.md)
- [buf_clear](kernel/1561901-buf_clear.md)
- [buf_clear_redundancy_flags](kernel/1561898-buf_clear_redundancy_flags.md)
- [buf_clearflags](kernel/1561837-buf_clearflags.md)
- [buf_clone](kernel/1561867-buf_clone.md)
- [buf_count](kernel/1561820-buf_count.md)
- [buf_create_shadow](kernel/1561838-buf_create_shadow.md)
- [buf_dataptr](kernel/1561881-buf_dataptr.md)
- [buf_device](kernel/1561922-buf_device.md)
- [buf_dirtyend](kernel/1561850-buf_dirtyend.md)
- [buf_dirtyoff](kernel/1561923-buf_dirtyoff.md)
- [buf_drvdata](kernel/1561866-buf_drvdata.md)
- [buf_error](kernel/1561818-buf_error.md)
- [buf_flags](kernel/1561844-buf_flags.md)
- [buf_flushdirtyblks](kernel/1561822-buf_flushdirtyblks.md)
- [buf_free](kernel/1561907-buf_free.md)
- [buf_fromcache](kernel/1561933-buf_fromcache.md)
- [buf_fsprivate](kernel/1561929-buf_fsprivate.md)
- [buf_fua](kernel/1561842-buf_fua.md)
- [buf_getblk](kernel/1561932-buf_getblk.md)
- [buf_geteblk](kernel/1561862-buf_geteblk.md)
- [buf_invalblkno](kernel/1561843-buf_invalblkno.md)
- [buf_iterate](kernel/1561857-buf_iterate.md)
- [buf_lblkno](kernel/1561825-buf_lblkno.md)
- [buf_map](kernel/1561890-buf_map.md)
- [buf_markaged](kernel/1561845-buf_markaged.md)
- [buf_markclean](kernel/1561834-buf_markclean.md)
- [buf_markdelayed](kernel/1561911-buf_markdelayed.md)
- [buf_markeintr](kernel/1561892-buf_markeintr.md)
- [buf_markfua](kernel/1561841-buf_markfua.md)
- [buf_markinvalid](kernel/1561863-buf_markinvalid.md)
- [buf_markstatic](kernel/1561839-buf_markstatic.md)
- [buf_meta_bread](kernel/1561871-buf_meta_bread.md)
- [buf_meta_breadn](kernel/1561821-buf_meta_breadn.md)
- [buf_proc](kernel/1561855-buf_proc.md)
- [buf_rcred](kernel/1561836-buf_rcred.md)
- [buf_redundancy_flags](kernel/1561872-buf_redundancy_flags.md)
- [buf_reset](kernel/1561928-buf_reset.md)
- [buf_resid](kernel/1561835-buf_resid.md)
- [buf_set_redundancy_flags](kernel/1561865-buf_set_redundancy_flags.md)
- [buf_setblkno](kernel/1561888-buf_setblkno.md)
- [buf_setcallback](kernel/1561885-buf_setcallback.md)
- [buf_setcount](kernel/1561852-buf_setcount.md)
- [buf_setdataptr](kernel/1561861-buf_setdataptr.md)
- [buf_setdevice](kernel/1561859-buf_setdevice.md)
- [buf_setdirtyend](kernel/1561826-buf_setdirtyend.md)
- [buf_setdirtyoff](kernel/1561924-buf_setdirtyoff.md)
- [buf_setdrvdata](kernel/1561880-buf_setdrvdata.md)
- [buf_seterror](kernel/1561934-buf_seterror.md)
- [buf_setflags](kernel/1561931-buf_setflags.md)
- [buf_setfsprivate](kernel/1561927-buf_setfsprivate.md)
- [buf_setlblkno](kernel/1561900-buf_setlblkno.md)
- [buf_setresid](kernel/1561849-buf_setresid.md)
- [buf_setsize](kernel/1561921-buf_setsize.md)
- [buf_setupl](kernel/1561846-buf_setupl.md)
- [buf_setvnode](kernel/1561833-buf_setvnode.md)
- [buf_shadow](kernel/1561877-buf_shadow.md)
- [buf_size](kernel/1561917-buf_size.md)
- [buf_static](kernel/1561912-buf_static.md)
- [buf_strategy](kernel/1561893-buf_strategy.md)
- [buf_unmap](kernel/1561876-buf_unmap.md)
- [buf_upl](kernel/1561918-buf_upl.md)
- [buf_uploffset](kernel/1561860-buf_uploffset.md)
- [buf_valid](kernel/1561915-buf_valid.md)
- [buf_vnode](kernel/1561919-buf_vnode.md)
- [buf_wcred](kernel/1561896-buf_wcred.md)
- [bufattr_ioscheduled](kernel/3325830-bufattr_ioscheduled.md)
- [bufattr_markioscheduled](kernel/3325831-bufattr_markioscheduled.md)
