• Al Viro's avatar
    Allow O_PATH for symlinks · bcda7652
    Al Viro authored
    At that point we can't do almost nothing with them.  They can be opened
    with O_PATH, we can manipulate such descriptors with dup(), etc. and
    we can see them in /proc/*/{fd,fdinfo}/*.
    
    We can't (and won't be able to) follow /proc/*/fd/* symlinks for those;
    there's simply not enough information for pathname resolution to go on
    from such point - to resolve a symlink we need to know which directory
    does it live in.
    
    We will be able to do useful things with them after the next commit, though -
    readlinkat() and fchownat() will be possible to use with dfd being an
    O_PATH-opened symlink and empty relative pathname.  Combined with
    open_by_handle() it'll give us a way to do realink-by-handle and
    lchown-by-handle without messing with more redundant syscalls.
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    bcda7652
namei.c 83.8 KB