lkml.org 
[lkml]   [2015]   [May]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 05/21] Documentation: remove outdated information from automount-support.txt
    Date
    From: NeilBrown <neilb@suse.de>

    The guidelines for adding automount support to a filesystem
    in filesystems/automount-support.txt is out or date.
    filesystems/autofs4.txt contains more current text, so replace
    the out-of-date content with a reference to that.

    Signed-off-by: NeilBrown <neilb@suse.de>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    ---
    Documentation/filesystems/automount-support.txt | 51 +++++++------------------
    1 file changed, 13 insertions(+), 38 deletions(-)

    diff --git a/Documentation/filesystems/automount-support.txt b/Documentation/filesystems/automount-support.txt
    index 7cac200..7eb762e 100644
    --- a/Documentation/filesystems/automount-support.txt
    +++ b/Documentation/filesystems/automount-support.txt
    @@ -1,41 +1,15 @@
    -Support is available for filesystems that wish to do automounting support (such
    -as kAFS which can be found in fs/afs/). This facility includes allowing
    -in-kernel mounts to be performed and mountpoint degradation to be
    -requested. The latter can also be requested by userspace.
    +Support is available for filesystems that wish to do automounting
    +support (such as kAFS which can be found in fs/afs/ and NFS in
    +fs/nfs/). This facility includes allowing in-kernel mounts to be
    +performed and mountpoint degradation to be requested. The latter can
    +also be requested by userspace.


    ======================
    IN-KERNEL AUTOMOUNTING
    ======================

    -A filesystem can now mount another filesystem on one of its directories by the
    -following procedure:
    -
    - (1) Give the directory a follow_link() operation.
    -
    - When the directory is accessed, the follow_link op will be called, and
    - it will be provided with the location of the mountpoint in the nameidata
    - structure (vfsmount and dentry).
    -
    - (2) Have the follow_link() op do the following steps:
    -
    - (a) Call vfs_kern_mount() to call the appropriate filesystem to set up a
    - superblock and gain a vfsmount structure representing it.
    -
    - (b) Copy the nameidata provided as an argument and substitute the dentry
    - argument into it the copy.
    -
    - (c) Call do_add_mount() to install the new vfsmount into the namespace's
    - mountpoint tree, thus making it accessible to userspace. Use the
    - nameidata set up in (b) as the destination.
    -
    - If the mountpoint will be automatically expired, then do_add_mount()
    - should also be given the location of an expiration list (see further
    - down).
    -
    - (d) Release the path in the nameidata argument and substitute in the new
    - vfsmount and its root dentry. The ref counts on these will need
    - incrementing.
    +See section "Mount Traps" of Documentation/filesystems/autofs4.txt

    Then from userspace, you can just do something like:

    @@ -61,17 +35,18 @@ AUTOMATIC MOUNTPOINT EXPIRY
    ===========================

    Automatic expiration of mountpoints is easy, provided you've mounted the
    -mountpoint to be expired in the automounting procedure outlined above.
    +mountpoint to be expired in the automounting procedure outlined separately.

    To do expiration, you need to follow these steps:

    - (3) Create at least one list off which the vfsmounts to be expired can be
    - hung. Access to this list will be governed by the vfsmount_lock.
    + (1) Create at least one list off which the vfsmounts to be expired can be
    + hung.

    - (4) In step (2c) above, the call to do_add_mount() should be provided with a
    - pointer to this list. It will hang the vfsmount off of it if it succeeds.
    + (2) When a new mountpoint is created in the ->d_automount method, add
    + the mnt to the list using mnt_set_expiry()
    + mnt_set_expiry(newmnt, &afs_vfsmounts);

    - (5) When you want mountpoints to be expired, call mark_mounts_for_expiry()
    + (3) When you want mountpoints to be expired, call mark_mounts_for_expiry()
    with a pointer to this list. This will process the list, marking every
    vfsmount thereon for potential expiry on the next call.

    --
    2.1.4


    \
     
     \ /
      Last update: 2015-05-14 00:41    [W:4.722 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site