|
@@ -65,7 +65,7 @@ directory is a mount trap only if the filesystem is mounted *direct*
|
|
|
and the root is empty.
|
|
|
|
|
|
Directories created in the root directory are mount traps only if the
|
|
|
-filesystem is mounted *indirect* and they are empty.
|
|
|
+filesystem is mounted *indirect* and they are empty.
|
|
|
|
|
|
Directories further down the tree depend on the *maxproto* mount
|
|
|
option and particularly whether it is less than five or not.
|
|
@@ -352,7 +352,7 @@ Communicating with autofs: root directory ioctls
|
|
|
------------------------------------------------
|
|
|
|
|
|
The root directory of an autofs filesystem will respond to a number of
|
|
|
-ioctls. The process issuing the ioctl must have the CAP_SYS_ADMIN
|
|
|
+ioctls. The process issuing the ioctl must have the CAP_SYS_ADMIN
|
|
|
capability, or must be the automount daemon.
|
|
|
|
|
|
The available ioctl commands are:
|
|
@@ -425,8 +425,20 @@ Each ioctl is passed a pointer to an `autofs_dev_ioctl` structure:
|
|
|
* including this struct */
|
|
|
__s32 ioctlfd; /* automount command fd */
|
|
|
|
|
|
- __u32 arg1; /* Command parameters */
|
|
|
- __u32 arg2;
|
|
|
+ /* Command parameters */
|
|
|
+ union {
|
|
|
+ struct args_protover protover;
|
|
|
+ struct args_protosubver protosubver;
|
|
|
+ struct args_openmount openmount;
|
|
|
+ struct args_ready ready;
|
|
|
+ struct args_fail fail;
|
|
|
+ struct args_setpipefd setpipefd;
|
|
|
+ struct args_timeout timeout;
|
|
|
+ struct args_requester requester;
|
|
|
+ struct args_expire expire;
|
|
|
+ struct args_askumount askumount;
|
|
|
+ struct args_ismountpoint ismountpoint;
|
|
|
+ };
|
|
|
|
|
|
char path[0];
|
|
|
};
|
|
@@ -446,25 +458,22 @@ Commands are:
|
|
|
set version numbers.
|
|
|
- **AUTOFS_DEV_IOCTL_OPENMOUNT_CMD**: return an open file descriptor
|
|
|
on the root of an autofs filesystem. The filesystem is identified
|
|
|
- by name and device number, which is stored in `arg1`. Device
|
|
|
- numbers for existing filesystems can be found in
|
|
|
+ by name and device number, which is stored in `openmount.devid`.
|
|
|
+ Device numbers for existing filesystems can be found in
|
|
|
`/proc/self/mountinfo`.
|
|
|
- **AUTOFS_DEV_IOCTL_CLOSEMOUNT_CMD**: same as `close(ioctlfd)`.
|
|
|
- **AUTOFS_DEV_IOCTL_SETPIPEFD_CMD**: if the filesystem is in
|
|
|
catatonic mode, this can provide the write end of a new pipe
|
|
|
- in `arg1` to re-establish communication with a daemon. The
|
|
|
- process group of the calling process is used to identify the
|
|
|
+ in `setpipefd.pipefd` to re-establish communication with a daemon.
|
|
|
+ The process group of the calling process is used to identify the
|
|
|
daemon.
|
|
|
- **AUTOFS_DEV_IOCTL_REQUESTER_CMD**: `path` should be a
|
|
|
name within the filesystem that has been auto-mounted on.
|
|
|
- arg1 is the dev number of the underlying autofs. On successful
|
|
|
- return, `arg1` and `arg2` will be the UID and GID of the process
|
|
|
- which triggered that mount.
|
|
|
-
|
|
|
+ On successful return, `requester.uid` and `requester.gid` will be
|
|
|
+ the UID and GID of the process which triggered that mount.
|
|
|
- **AUTOFS_DEV_IOCTL_ISMOUNTPOINT_CMD**: Check if path is a
|
|
|
mountpoint of a particular type - see separate documentation for
|
|
|
details.
|
|
|
-
|
|
|
- **AUTOFS_DEV_IOCTL_PROTOVER_CMD**:
|
|
|
- **AUTOFS_DEV_IOCTL_PROTOSUBVER_CMD**:
|
|
|
- **AUTOFS_DEV_IOCTL_READY_CMD**:
|
|
@@ -474,7 +483,7 @@ Commands are:
|
|
|
- **AUTOFS_DEV_IOCTL_EXPIRE_CMD**:
|
|
|
- **AUTOFS_DEV_IOCTL_ASKUMOUNT_CMD**: These all have the same
|
|
|
function as the similarly named **AUTOFS_IOC** ioctls, except
|
|
|
- that **FAIL** can be given an explicit error number in `arg1`
|
|
|
+ that **FAIL** can be given an explicit error number in `fail.status`
|
|
|
instead of assuming `ENOENT`, and this **EXPIRE** command
|
|
|
corresponds to **AUTOFS_IOC_EXPIRE_MULTI**.
|
|
|
|
|
@@ -512,7 +521,7 @@ always be mounted "shared". e.g.
|
|
|
|
|
|
> `mount --make-shared /autofs/mount/point`
|
|
|
|
|
|
-The automount daemon is only able to mange a single mount location for
|
|
|
+The automount daemon is only able to manage a single mount location for
|
|
|
an autofs filesystem and if mounts on that are not 'shared', other
|
|
|
locations will not behave as expected. In particular access to those
|
|
|
other locations will likely result in the `ELOOP` error
|