• Stanislav Kinsbursky's avatar
    SUNRPC: fix pipe->ops cleanup on pipe dentry unlink · ad6b1340
    Stanislav Kinsbursky authored
    This patch looks late due to GSS AUTH patches sent already. But it fixes a flaw
    in RPC PipeFS pipes handling.
    I've added this patch in the series, because this series related to pipes. But
    it should be a part of previous series named "SUNPRC: cleanup PipeFS for
    network-namespace-aware users".
    
    Pipe dentry can be created and destroyed many times during pipe life cycle.
    This actually means, that we can't set pipe->ops to NULL in rpc_close_pipes()
    and use this variable as a flag, indicating, that pipe's dentry is unlinking.
    To follow this restriction, this patch replaces "pipe->ops = NULL" assignment
    and checks for NULL with "pipe->dentry = NULL" assignment and checks for
    NULL respectively.
    This patch also removes check for non-NULL pipe->ops (or pipe->dentry) in
    rpc_close_pipes() because it always non-NULL now.
    Signed-off-by: default avatarStanislav Kinsbursky <skinsbursky@parallels.com>
    Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
    ad6b1340
rpc_pipe.c 28.1 KB