• G
    9pfs: handle walk of ".." in the root directory · 56f101ec
    Greg Kurz 提交于
    The 9P spec at http://man.cat-v.org/plan_9/5/intro says:
    
    All directories must support walks to the directory .. (dot-dot) meaning
    parent directory, although by convention directories contain no explicit
    entry for .. or . (dot).  The parent of the root directory of a server's
    tree is itself.
    
    This means that a client cannot walk further than the root directory
    exported by the server. In other words, if the client wants to walk
    "/.." or "/foo/../..", the server should answer like the request was
    to walk "/".
    
    This patch just does that:
    - we cache the QID of the root directory at attach time
    - during the walk we compare the QID of each path component with the root
      QID to detect if we're in a "/.." situation
    - if so, we skip the current component and go to the next one
    Signed-off-by: NGreg Kurz <groug@kaod.org>
    Reviewed-by: NEric Blake <eblake@redhat.com>
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    56f101ec
9p.h 7.0 KB