lkml.org 
[lkml]   [2021]   [Mar]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 2/9] fs: add an argument-less alloc_anon_inode
    Date
    Add a new alloc_anon_inode helper that allocates an inode on
    the anon_inode file system.

    Signed-off-by: Christoph Hellwig <hch@lst.de>
    ---
    fs/anon_inodes.c | 15 +++++++++++++--
    include/linux/anon_inodes.h | 1 +
    2 files changed, 14 insertions(+), 2 deletions(-)

    diff --git a/fs/anon_inodes.c b/fs/anon_inodes.c
    index 4745fc37014332..b6a8ea71920bc3 100644
    --- a/fs/anon_inodes.c
    +++ b/fs/anon_inodes.c
    @@ -63,7 +63,7 @@ static struct inode *anon_inode_make_secure_inode(
    const struct qstr qname = QSTR_INIT(name, strlen(name));
    int error;

    - inode = alloc_anon_inode_sb(anon_inode_mnt->mnt_sb);
    + inode = alloc_anon_inode();
    if (IS_ERR(inode))
    return inode;
    inode->i_flags &= ~S_PRIVATE;
    @@ -225,13 +225,24 @@ int anon_inode_getfd_secure(const char *name, const struct file_operations *fops
    }
    EXPORT_SYMBOL_GPL(anon_inode_getfd_secure);

    +/**
    + * alloc_anon_inode - create a new anonymous inode
    + *
    + * Create an inode on the anon_inode file system and return it.
    + */
    +struct inode *alloc_anon_inode(void)
    +{
    + return alloc_anon_inode_sb(anon_inode_mnt->mnt_sb);
    +}
    +EXPORT_SYMBOL_GPL(alloc_anon_inode);
    +
    static int __init anon_inode_init(void)
    {
    anon_inode_mnt = kern_mount(&anon_inode_fs_type);
    if (IS_ERR(anon_inode_mnt))
    panic("anon_inode_init() kernel mount failed (%ld)\n", PTR_ERR(anon_inode_mnt));

    - anon_inode_inode = alloc_anon_inode_sb(anon_inode_mnt->mnt_sb);
    + anon_inode_inode = alloc_anon_inode();
    if (IS_ERR(anon_inode_inode))
    panic("anon_inode_init() inode allocation failed (%ld)\n", PTR_ERR(anon_inode_inode));

    diff --git a/include/linux/anon_inodes.h b/include/linux/anon_inodes.h
    index 71881a2b6f7860..b5ae9a6eda9923 100644
    --- a/include/linux/anon_inodes.h
    +++ b/include/linux/anon_inodes.h
    @@ -21,6 +21,7 @@ int anon_inode_getfd_secure(const char *name,
    const struct file_operations *fops,
    void *priv, int flags,
    const struct inode *context_inode);
    +struct inode *alloc_anon_inode(void);

    #endif /* _LINUX_ANON_INODES_H */

    --
    2.30.1
    \
     
     \ /
      Last update: 2021-03-09 16:57    [W:6.304 / U:0.160 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site