• T
    VFS: Add VFS helper functions for setting up private namespaces · cf8d2c11
    Trond Myklebust 提交于
    The purpose of this patch is to improve the remote mount path lookup
    support for distributed filesystems such as the NFSv4 client.
    
    When given a mount command of the form "mount server:/foo/bar /mnt", the
    NFSv4 client is required to look up the filehandle for "server:/", and
    then look up each component of the remote mount path "foo/bar" in order
    to find the directory that is actually going to be mounted on /mnt.
    Following that remote mount path may involve following symlinks,
    crossing server-side mount points and even following referrals to
    filesystem volumes on other servers.
    
    Since the standard VFS path lookup code already supports walking paths
    that contain all these features (using in-kernel automounts for
    following referrals) we would like to be able to reuse that rather than
    duplicate the full path traversal functionality in the NFSv4 client code.
    
    This patch therefore defines a VFS helper function create_mnt_ns(), that
    sets up a temporary filesystem namespace and attaches a root filesystem to
    it. It exports the create_mnt_ns() and put_mnt_ns() function for use by
    filesystem modules.
    Signed-off-by: NTrond Myklebust <Trond.Myklebust@netapp.com>
    Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
    cf8d2c11
namespace.c 56.8 KB