Requests DFS to free a number of limbo blocks on a volume.
#include <dfs.h>
int dfs_freelimbospace (
int volNum,
size_t blockCount );
(IN) Specifies the volume number where the requested number of limbo blocks are to be freed.
(IN) Specifies the number of limbo blocks requested to be freed.
If successful, returns 0. Otherwise, returns a nonzero error code:
|
Decimal |
Constant |
Description |
|---|---|---|
|
79 |
ENOTSUP |
The NLM is loaded in protected address space. This operation is supported only in kernel address space. |
For possible DFS errors, see Section 13.4.5, DFS Return Values.
This function requests the OS to free a number of limbo blocks on a given volume. This function performs the equivalent of a purge of one or more files until it has freed the requested number of blocks (or more). There is no guarantee that the OS can free as many blocks as requested by the caller, or that the blocks freed are contiguous. Also there is no way to guarantee that the blocks will be made available on a specific volume segment.
Other processes, including system functions, can acquire blocks that have just been freed before they can be allocated. The OS normally stripes allocation of files when multiple segments exist for a volume, so it can be very difficult to find a large contiguous area of free blocks on a volume where non-direct or normal files are allocated in multi segment volumes. Callers should be prepared to call this function multiple times.