LFS_SEGCLEAN(2) BSD System Calls Manual LFS_SEGCLEAN(2)NAME
lfs_segclean -- mark a segment clean
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/types.h>
int
lfs_segclean(fsid_t *fsidp, u_long segment);
DESCRIPTION
lfs_segclean() marks segment number segment in LFS filesystem *fsidp "clean" or available for writing.
RETURN VALUES
lfs_segclean() returns 0 on success, or -1 on error.
ERRORS
An error return from lfs_segclean() indicates:
[EFAULT] fsidp points outside the process's allocated address space.
[EINVAL] *fsidp does not specify a valid filesystem.
[EBUSY] segment is marked SU_ACTIVE, meaning that it does not yet belong to a valid checkpoint.
SEE ALSO lfs_bmapv(2), lfs_markv(2), lfs_segwait(2), lfs_cleanerd(8)HISTORY
The lfs_segclean() function call appeared in 4.4BSD.
BSD May 23, 2000 BSD
Check Out this Related Man Page
LFS_CLEANERD(8) BSD System Manager's Manual LFS_CLEANERD(8)NAME
lfs_cleanerd -- garbage collect a log-structured file system
SYNOPSIS
lfs_cleanerd [-bcDdfmqs] [-i segment-number] [-l load-threshhold] [-n number-of-segments] [-r report-frequency] [-t timeout] node
DESCRIPTION
The lfs_cleanerd command starts a daemon process which garbage-collects the log-structured file system residing at the point named by node in
the global file system namespace. This command is normally executed by mount_lfs(8) when the log-structured file system is mounted. The
daemon will exit within a few minutes of when the file system it was cleaning is unmounted.
Garbage collection on a log-structured file system is done by scanning the file system's segments for active, i.e. referenced, data and copy-
ing it to new segments. When all of the active data in a given segment has been copied to a new segment that segment can be marked as empty,
thus reclaiming the space taken by the inactive data which was in it.
The following options are available:
-b Use bytes written, rather than segments read, when determining how many segments to clean at once.
-c Coalescing mode. For each live inode, check to see if it has too many blocks that are not contiguous, and if it does, rewrite it.
After a single pass through the filesystem the cleaner will exit. This option has been reported to corrupt file data; do not use it.
-D Stay in the foreground, do not become a daemon process. Does not print additional debugging information (in contrast to -d).
-d Run in debug mode. Do not become a daemon process, and print debugging information. More -d s give more detailed debugging informa-
tion.
-f Use filesystem idle time as the criterion for aggressive cleaning, instead of system load.
-i segment-number
Invalidate the segment with segment number segment-number. This option is used by resize_lfs(8), and should not be specified on the
command line.
-l load-threshhold
Clean more aggressively when the system load is below the given threshhold. The default threshhold is 0.2.
-m Does nothing. This option is present for historical compatibility.
-n number-of-segments
Clean this number of segments at a time: that is, pass this many segments' blocks through a single call to lfs_markv, or, if -b was
also given, pass this many segments' worth of blocks through a single call to lfs_markv.
-q Quit after cleaning once.
-r report-frequency
Give an efficiency report after every report-frequency times through the main loop.
-s When cleaning the file system, send only a few blocks through lfs_markv at a time. Don't use this option.
-t timeout
Poll the filesystem every timeout seconds, looking for opportunities to clean. The default is 300, that is, five minutes. Note that
lfs_cleanerd will be automatically awakened when the filesystem is active, so it is not usually necessary to set timeout to a low
value.
SEE ALSO lfs_bmapv(2), lfs_markv(2), lfs_segwait(2), mount_lfs(8)HISTORY
The lfs_cleanerd utility first appeared in 4.4BSD.
BSD August 6, 2009 BSD