• Steve Dickson's avatar
    nfsd: introduce export flag for v4 pseudoroot · eb4c86c6
    Steve Dickson authored
    NFSv4 differs from v2 and v3 in that it presents a single unified
    filesystem tree, whereas v2 and v3 exported multiple filesystem (whose
    roots could be found using a separate mount protocol).
    
    Our original NFSv4 server implementation asked the administrator to
    designate a single filesystem as the NFSv4 root, then to mount
    filesystems they wished to export underneath.  (Often using bind mounts
    of already-existing filesystems.)
    
    This was conceptually simple, and allowed easy implementation, but
    created a serious obstacle to upgrading between v2/v3: since the paths
    to v4 filesystems were different, administrators would have to adjust
    all the paths in client-side mount commands when switching to v4.
    
    Various workarounds are possible.  For example, the administrator could
    export "/" and designate it as the v4 root.  However, the security risks
    of that approach are obvious, and in any case we shouldn't be requiring
    the administrator to take extra steps to fix this problem; instead, the
    server should present consistent paths across different versions by
    default.
    
    These patches take a modified version of that approach: we provide a new
    export option which exports only a subset of a filesystem.  With this
    flag, it becomes safe for mountd to export "/" by default, with no need
    for additional configuration.
    
    We begin just by defining the new flag.
    Signed-off-by: default avatarSteve Dickson <steved@redhat.com>
    Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
    eb4c86c6
export.c 38.3 KB