UFS_DISK_CLOSE(3)

NAME
ufs_disk_close, ufs_disk_fillout, ufs_disk_fillout_blank, ufs_disk_write - open and close userland UFS disks

LIBRARY
libufs

SYNOPSIS
#include <sys/param.h>
#include <sys/mount.h>
#include <ufs/ufs/ufsmount.h>
#include <ufs/ufs/dinode.h>
#include <ufs/ffs/fs.h>
#include <libufs.h>
int
ufs_disk_close(struct uufsd *disk);
int
ufs_disk_fillout(struct uufsd *disk, const char *name);
int
ufs_disk_fillout_blank(struct uufsd *disk, const char *name);
int
ufs_disk_write(struct uufsd *disk);

DESCRIPTION
The ufs_disk_close() function closes a disk and frees internal memory related to it. It does not free the disk structure.

The ufs_disk_fillout() and ufs_disk_fillout_blank() functions open a disk specified by name and populate the structure pointed to by disk. The structure referenced by the disk pointer must be aligned to at least the alignment specified by LIBUFS_ALIGN that is defined in the <libufs.h> header file. The disk is opened read-only. The specified name may be either a mountpoint, a device name or a filesystem image. The ufs_disk_fillout() function assumes there is a valid superblock and will fail if not, whereas the ufs_disk_fillout_blank() function makes no assumptions of that sort.

The ufs_disk_write() function attempts to re-open a disk as writable if it is not currently.

ERRORS
The function ufs_disk_close() has no failure points.

The function ufs_disk_fillout() may fail for any of the reasons ufs_disk_fillout_blank() might, as well as for any reason sbread(3) might.

The ufs_disk_fillout_blank() may fail and set errno for any of the errors specified for the library functions open(2), strdup(3). Additionally, it may follow the libufs(3) error methodologies in situations where no device could be found to open.

The function ufs_disk_write() may fail and set errno for any of the errors specified for the library functions open(2) and stat(2). Namely, it will fail if the disk in question may not be written to.

SEE ALSO
open(2), getfsfile(3), libufs(3), sbread(3)

HISTORY
These functions first appeared as part of libufs(3) in FreeBSD 5.0.

AUTHORS
Juli Mallett <jmallett@FreeBSD.org>