lkml.org 
[lkml]   [2019]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 120/137] hypfs: Fix error number left in struct pointer member
    Date
    From: David Howells <dhowells@redhat.com>

    [ Upstream commit b54c64f7adeb241423cd46598f458b5486b0375e ]

    In hypfs_fill_super(), if hypfs_create_update_file() fails,
    sbi->update_file is left holding an error number. This is passed to
    hypfs_kill_super() which doesn't check for this.

    Fix this by not setting sbi->update_value until after we've checked for
    error.

    Fixes: 24bbb1faf3f0 ("[PATCH] s390_hypfs filesystem")
    Signed-off-by: David Howells <dhowells@redhat.com>
    cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
    cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    cc: linux-s390@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/s390/hypfs/inode.c | 9 +++++----
    1 file changed, 5 insertions(+), 4 deletions(-)

    diff --git a/arch/s390/hypfs/inode.c b/arch/s390/hypfs/inode.c
    index ccad1398abd40..b5cfcad953c2e 100644
    --- a/arch/s390/hypfs/inode.c
    +++ b/arch/s390/hypfs/inode.c
    @@ -269,7 +269,7 @@ static int hypfs_show_options(struct seq_file *s, struct dentry *root)
    static int hypfs_fill_super(struct super_block *sb, void *data, int silent)
    {
    struct inode *root_inode;
    - struct dentry *root_dentry;
    + struct dentry *root_dentry, *update_file;
    int rc = 0;
    struct hypfs_sb_info *sbi;

    @@ -300,9 +300,10 @@ static int hypfs_fill_super(struct super_block *sb, void *data, int silent)
    rc = hypfs_diag_create_files(root_dentry);
    if (rc)
    return rc;
    - sbi->update_file = hypfs_create_update_file(root_dentry);
    - if (IS_ERR(sbi->update_file))
    - return PTR_ERR(sbi->update_file);
    + update_file = hypfs_create_update_file(root_dentry);
    + if (IS_ERR(update_file))
    + return PTR_ERR(update_file);
    + sbi->update_file = update_file;
    hypfs_update_update(sb);
    pr_info("Hypervisor filesystem mounted\n");
    return 0;
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-10-06 19:38    [W:4.105 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site