NAME
undelete
- attempt to recover a deleted file
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
int
undelete(
const char *path
)
DESCRIPTION
The
undelete(
)
function attempts to recover the deleted file named by
path
.
Currently, this works only when the named object
is a whiteout in a union filesystem.
The system call removes the whiteout causing
any objects in a lower layer of the
union stack to become visible once more.
Eventually, the
undelete
functionality may be expanded to other filesystems able to recover
deleted files such as the log-structured filesystem.
RETURN VALUES
Upon successful completion, a value of 0 is returned.
Otherwise, a value of -1 is returned and
errno
is set to indicate the error.
ERRORS
The
undelete(
)
succeeds unless:
- [
ENOTDIR
] -
A component of the path prefix is not a directory.
- [
EINVAL
] -
The pathname contains a character with the high-order bit set.
- [
ENAMETOOLONG
] -
A component of a pathname exceeded 255 characters,
or an entire path name exceeded 1023 characters.
- [
EEXIST
] -
The path does not reference a whiteout.
- [
ENOENT
] -
The named whiteout does not exist.
- [
EACCES
] -
Search permission is denied for a component of the path prefix, or
write permission is denied on the directory containing the name
to be undeleted.
- [
ELOOP
] -
Too many symbolic links were encountered in translating the pathname.
- [
EPERM
] -
The directory containing the name is marked sticky,
and the containing directory is not owned by the effective user ID.
- [
EIO
] -
An I/O error occurred while updating the directory entry.
- [
EROFS
] -
The name resides on a read-only file system.
- [
EFAULT
] -
path
points outside the process's allocated address space.
SEE ALSO
unlink(2),
mount_union(8)
HISTORY
An
undelete
function call first appeared in
4.4BSD-Lite.