NAME
undelete —
remove whiteout
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <unistd.h>
int
undelete(
const
char *path);
DESCRIPTION
Currently
undelete works only when the named object is a
whiteout in a union file system. The system call removes the whiteout causing
any objects in a lower layer of the union stack to become visible once more.
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:
-
-
- [
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.
-
-
- [
EEXIST
]
- The path does not reference a whiteout.
-
-
- [
EFAULT
]
- path points outside the process's
allocated address space.
-
-
- [
EINVAL
]
- The pathname contains a character with the high-order bit
set.
-
-
- [
EIO
]
- An I/O error occurred while updating the directory
entry.
-
-
- [
ELOOP
]
- Too many symbolic links were encountered in translating the
pathname.
-
-
- [
ENAMETOOLONG
]
- A component of a pathname exceeded
{
NAME_MAX
} characters, or an entire path name
exceeded {PATH_MAX
} characters.
-
-
- [
ENOENT
]
- The named whiteout does not exist.
-
-
- [
ENOTDIR
]
- A component of the path prefix is not a directory.
-
-
- [
EPERM
]
- The directory containing the name is marked sticky, and the
containing directory is not owned by the effective user ID.
-
-
- [
EROFS
]
- The name resides on a read-only file system.
SEE ALSO
unlink(2),
mount_union(8)
HISTORY
An
undelete function call first appeared in
4.4BSD--Lite.