[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <lsq.1575813165.422392579@decadent.org.uk>
Date: Sun, 08 Dec 2019 13:53:19 +0000
From: Ben Hutchings <ben@...adent.org.uk>
To: linux-kernel@...r.kernel.org, stable@...r.kernel.org
CC: akpm@...ux-foundation.org, Denis Kirjanov <kda@...ux-powerpc.org>,
"Martin Schwidefsky" <schwidefsky@...ibm.com>,
"David Howells" <dhowells@...hat.com>,
"Al Viro" <viro@...iv.linux.org.uk>, linux-s390@...r.kernel.org,
"Heiko Carstens" <heiko.carstens@...ibm.com>
Subject: [PATCH 3.16 35/72] hypfs: Fix error number left in struct pointer
member
3.16.79-rc1 review patch. If anyone has any objections, please let me know.
------------------
From: David Howells <dhowells@...hat.com>
commit b54c64f7adeb241423cd46598f458b5486b0375e upstream.
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@...hat.com>
cc: Martin Schwidefsky <schwidefsky@...ibm.com>
cc: Heiko Carstens <heiko.carstens@...ibm.com>
cc: linux-s390@...r.kernel.org
Signed-off-by: Al Viro <viro@...iv.linux.org.uk>
Signed-off-by: Ben Hutchings <ben@...adent.org.uk>
---
arch/s390/hypfs/inode.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
--- a/arch/s390/hypfs/inode.c
+++ b/arch/s390/hypfs/inode.c
@@ -275,7 +275,7 @@ static int hypfs_show_options(struct seq
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;
@@ -306,9 +306,10 @@ static int hypfs_fill_super(struct super
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;
Powered by blists - more mailing lists