Lines Matching refs:to

8 There is a problem with active restarts in autofs (that is to say
12 directory that is being managed in order to be able to issue control
13 operations. Using a file descriptor gives ioctl operations access to
18 mount itself which prevents us being able to use open(2) to obtain a
21 Currently autofs uses "umount -l" (lazy umount) to clear active mounts
23 needs to walk back up the mount tree to construct a path, such as
28 The actual problem with autofs is that it can't reconnect to existing
29 mounts. Immediately one thinks of just adding the ability to remount
67 use the follow_link inode operation to trigger the mount.
92 to mount and umount all of the offsets as a single unit. Not really a
100 somewhat more detail to the implementation but it isn't needed for the
107 descriptor are accounted for in checks made to determine if a mount is
108 in use and is also used to access autofs file system information held
109 in the mount super block. So the use of a file handle needs to be
116 To be able to restart autofs leaving existing direct, indirect and
117 offset mounts in place we need to be able to obtain a file handle
119 implement an isolated operation it was decided to re-implement the
120 existing ioctl interface and add new operations to provide this
123 In addition, to be able to reconstruct a mount tree that has busy mounts,
124 the uid and gid of the last user that triggered the mount needs to be
127 has been added to retrieve them.
131 a mount or expire operation completes a status is returned to the
134 ENOENT so the re-implementation allows user space to send an actual
137 involves scanning /proc/mounts and since it needs to be done quite
139 in the mount table. An operation to lookup the mount status of a mount
144 using this system was attempted to evaluate its suitability and it was
145 found to be inadequate, in this case. The Generic Netlink system was
146 used for this as raw Netlink would lead to a significant increase in
149 replacement probably because its primary purpose in life is to be a
151 While it would be possible to work around this there is one concern
152 that lead to the decision to not use it. This is that the autofs
153 expire in the daemon has become far to complex because umount
154 candidates are enumerated, almost for no other reason than to "count"
155 the number of times to call the expire ioctl. This involves scanning
156 the mount table which has proved to be a big overhead for users with
157 large maps. The best way to improve this is try and get back to the
159 issued for a mount (file handle) we should continually call back to
161 appropriate status to the daemon. At the moment we just expire one
163 possibility for future development due to the requirements of the
172 All the ioctls use a common structure to pass the needed parameter
191 optionally be used to check a specific mount corresponding to a given
195 The fields arg1 and arg2 are used to communicate parameters and results of
198 The path field is used to pass a path where it is needed and the size field
205 All of the ioctls perform a copy of this structure from user space to
211 the structure size then a path is assumed to be present and is checked to
216 not a valid descriptor or doesn't correspond to an autofs mount point
247 with the ioctlfd field set to a valid autofs mount point descriptor
259 as the arg1 field set to the device number of the autofs mount. The
262 autofs_dev_ioct with the ioctlfd field set to the descriptor obtained
266 completeness and to provide for a consistent user space implementation.
272 Return mount and expire result status from user space to the kernel.
274 with the ioctlfd field set to the descriptor obtained from the open
275 call and the arg1 field set to the wait queue token number, received
277 is set to the status to be returned. For the ready call this is always
278 0 and for the fail call it is set to the errno of the operation.
284 Set the pipe file descriptor used for kernel communication to the daemon.
286 to a existing mount we need to use this to tell the autofs mount about
287 the new kernel pipe descriptor. In order to protect mounts against
292 ioctlfd field set to the descriptor obtained from the open call and
293 the arg1 field set to descriptor of the pipe. On success the call
294 also sets the process group id used to identify the controlling process
295 (eg. the owning automount(8) daemon) to the process group of the caller.
306 ioctlfd field set to the descriptor obtained from the open call.
315 ioctlfd field set to the descriptor obtained from the open call.
321 Return the uid and gid of the last process to successfully trigger a the
325 field set to the mount point in question and the size field adjusted
326 appropriately as well as the arg1 field set to the device number of the
330 When reconstructing an autofs mount tree with active mounts we need to
331 re-connect to mounts that may have used the original process uid and
333 This call provides the ability to obtain this uid and gid so they may be
340 Issue an expire request to the kernel for an autofs mount. Typically
344 ioctlfd field set to the descriptor obtained from the open call. In
346 requested by setting the arg1 field to 1. If no expire candidates can
347 be found the ioctl returns -1 with errno set to EAGAIN.
349 This call causes the kernel module to check the mount corresponding
350 to the given ioctlfd for mounts that can be expired, issues an expire
351 request back to the daemon and waits for completion.
359 ioctlfd field set to the descriptor obtained from the open call and
369 possible variations. Both use the path field set to the path of the mount
370 point to check and the size field adjusted appropriately. One uses the
371 ioctlfd field to identify a specific mount point to check while the other
372 variation uses the path and optionally arg1 set to an autofs mount type.
373 The call returns 1 if this is a mount point and sets arg1 to the device
374 number of the mount and field arg2 to the relevant super block magic
381 the descriptor corresponds to is considered a mountpoint if it is itself
383 mount. In this case we return 1 if the descriptor corresponds to a mount
387 If a path is supplied (and the ioctlfd field is set to -1) then the path
388 is looked up and is checked to see if it is the root of a mount. If a