• Daniel Colascione's avatar
    fs: add LSM-supporting anon-inode interface · e7e832ce
    Daniel Colascione authored
    This change adds a new function, anon_inode_getfd_secure, that creates
    anonymous-node file with individual non-S_PRIVATE inode to which security
    modules can apply policy. Existing callers continue using the original
    singleton-inode kind of anonymous-inode file. We can transition anonymous
    inode users to the new kind of anonymous inode in individual patches for
    the sake of bisection and review.
    
    The new function accepts an optional context_inode parameter that callers
    can use to provide additional contextual information to security modules.
    For example, in case of userfaultfd, the created inode is a 'logical child'
    of the context_inode (userfaultfd inode of the parent process) in the sense
    that it provides the security context required during creation of the child
    process' userfaultfd inode.
    Signed-off-by: default avatarDaniel Colascione <dancol@google.com>
    [LG: Delete obsolete comments to alloc_anon_inode()]
    [LG: Add context_inode description in comments to anon_inode_getfd_secure()]
    [LG: Remove definition of anon_inode_getfile_secure() as there are no callers]
    [LG: Make __anon_inode_getfile() static]
    [LG: Use correct error cast in __anon_inode_getfile()]
    [LG: Fix error handling in __anon_inode_getfile()]
    Signed-off-by: default avatarLokesh Gidra <lokeshgidra@google.com>
    Reviewed-by: default avatarEric Biggers <ebiggers@google.com>
    Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
    e7e832ce
libfs.c 39.5 KB