VOP_BMAP
—
Logical to physical block number conversion
#include <sys/param.h>
#include <sys/vnode.h>
int
VOP_BMAP
(struct
vnode *vp, daddr_t
bn, struct bufobj
**bop, daddr_t
*bnp, int *runp,
int *runb);
This vnode call is used to lookup the physical block number of the file system's
underlying device where a given logical block of a file is stored. Its
arguments are:
- vp
- The vnode of the file.
- bn
- Logical block number within the file identified by
vp.
- bop
- Return storage for the buffer object associated with the file system's
underlying device.
- bnp
- Return storage for the physical block number.
- runp
- Return storage for the number of succeeding logical blocks that may be
efficiently read at the same time as the requested block. This will
usually be the number of logical blocks whose physical blocks are
contiguously allocated. However a file system is free to define
"efficient" as it see fit.
- runb
- Like runp but for preceding rather than succeeding
blocks.
Any of the return arguments may be NULL
to
indicate that the caller does not care about that information.
The vnode will be locked on entry and should remain locked on return.
Zero is returned on success, otherwise an error code is returned.
A bmap
() function first appeared in
4.2BSD.
This manual page was written by Alan Somers.