NAME
lfs_bmapv —
retrieve disk addresses for
arrays of blocks
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
#include <ufs/lfs/lfs.h>
int
lfs_bmapv(
fsid_t
*fsidp,
BLOCK_INFO
*blkiov,
int blkcnt);
DESCRIPTION
lfs_bmapv() fills in the bi_daddr field for every block listed
in the block array
blkiov with the disk address
corresponding to the logical block
bi_lbn of the file
with inode
bi_inode. If
bi_lbn is
LFS_UNUSED_LBN, the disk location of the inode block containing the file's
inode will be returned in
bi_daddr instead.
The
fsidp argument contains the id of the file system to
which the inodes and blocks belong. The
blkiov argument
is an array of BLOCK_INFO structures (see below). The
blkcnt argument determines the size of the
blkiov array.
typedef struct block_info {
ino_t bi_inode; /* inode # */
ufs_daddr_t bi_lbn; /* logical block w/in file */
ufs_daddr_t bi_daddr; /* disk address of block */
time_t bi_segcreate; /* origin segment create time */
int bi_version; /* file version number */
void *bi_bp; /* data buffer */
int bi_size; /* size of the block (if fragment) */
} BLOCK_INFO;
RETURN VALUES
lfs_bmapv() returns 0 on success, or -1 on error.
ERRORS
An error return from
lfs_bmapv() indicates:
-
-
- [
EFAULT
]
- fsidp points outside the process's
allocated address space.
-
-
- [
EINVAL
]
- *fsidp does not specify a valid file
system.
SEE ALSO
lfs_markv(2),
lfs_segclean(2),
lfs_segwait(2),
lfs_cleanerd(8)
HISTORY
The
lfs_bmapv() function call appeared in
4.4BSD.