summaryrefslogtreecommitdiffstats
path: root/fs/gfs2
diff options
context:
space:
mode:
authorBob Peterson <rpeterso@redhat.com>2016-04-12 22:14:26 +0200
committerBob Peterson <rpeterso@redhat.com>2016-04-14 15:52:50 +0200
commite97321fa095f1ea7110d4d2ba446bd6141ed9a03 (patch)
treeb14e2f6bf0a670f9378b855f68f5d851b364c8c0 /fs/gfs2
parentGFS2: fs/gfs2/glock.c: Deinline do_error, save 1856 bytes (diff)
downloadlinux-e97321fa095f1ea7110d4d2ba446bd6141ed9a03.tar.xz
linux-e97321fa095f1ea7110d4d2ba446bd6141ed9a03.zip
GFS2: Don't dereference inode in gfs2_inode_lookup until it's valid
Function gfs2_inode_lookup was dereferencing the inode, and after, it checks for the value being NULL. We need to check that first. Signed-off-by: Bob Peterson <rpeterso@redhat.com>
Diffstat (limited to 'fs/gfs2')
-rw-r--r--fs/gfs2/inode.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index bb30f9a72c65..aea002ea94a6 100644
--- a/fs/gfs2/inode.c
+++ b/fs/gfs2/inode.c
@@ -93,12 +93,12 @@ struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned int type,
int error;
inode = iget_locked(sb, (unsigned long)no_addr);
- ip = GFS2_I(inode);
- ip->i_no_addr = no_addr;
-
if (!inode)
return ERR_PTR(-ENOMEM);
+ ip = GFS2_I(inode);
+ ip->i_no_addr = no_addr;
+
if (inode->i_state & I_NEW) {
struct gfs2_sbd *sdp = GFS2_SB(inode);
ip->i_no_formal_ino = no_formal_ino;