diff options
author | Bob Peterson <rpeterso@redhat.com> | 2016-04-12 16:14:26 -0400 |
---|---|---|
committer | Bob Peterson <rpeterso@redhat.com> | 2016-04-14 09:52:50 -0400 |
commit | e97321fa095f1ea7110d4d2ba446bd6141ed9a03 (patch) | |
tree | b14e2f6bf0a670f9378b855f68f5d851b364c8c0 /fs/gfs2/inode.c | |
parent | a527b38e1475211b67eb59b3fadb40689f035529 (diff) | |
download | talos-op-linux-e97321fa095f1ea7110d4d2ba446bd6141ed9a03.tar.gz talos-op-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/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 6 |
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; |