From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Whitehouse Date: Fri, 26 Sep 2008 13:00:49 +0100 Subject: [Cluster-devel] [PATCH 06/12] GFS2: Use an IS_ERR test rather than a NULL test In-Reply-To: <1222430455-4632-6-git-send-email-swhiteho@redhat.com> References: <1222430455-4632-1-git-send-email-swhiteho@redhat.com> <1222430455-4632-2-git-send-email-swhiteho@redhat.com> <1222430455-4632-3-git-send-email-swhiteho@redhat.com> <1222430455-4632-4-git-send-email-swhiteho@redhat.com> <1222430455-4632-5-git-send-email-swhiteho@redhat.com> <1222430455-4632-6-git-send-email-swhiteho@redhat.com> Message-ID: <1222430455-4632-7-git-send-email-swhiteho@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit From: Julien Brunel In case of error, the function gfs2_inode_lookup returns an ERR pointer, but never returns a NULL pointer. So a NULL test that necessarily comes after an IS_ERR test should be deleted, and a NULL test that may come after a call to this function should be strengthened by an IS_ERR test. The semantic match that finds this problem is as follows: (http://www.emn.fr/x-info/coccinelle/) // @match_bad_null_test@ expression x, E; statement S1,S2; @@ x = gfs2_inode_lookup(...) ... when != x = E * if (x != NULL) S1 else S2 // Signed-off-by: Julien Brunel Signed-off-by: Julia Lawall Signed-off-by: Steven Whitehouse diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 8752552..c8a959c 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -1033,13 +1033,11 @@ struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name, if (bh) brelse(bh); - if (!inode) - return ERR_PTR(-ENOMEM); return inode; fail_gunlock2: gfs2_glock_dq_uninit(ghs + 1); - if (inode) + if (inode && !IS_ERR(inode)) iput(inode); fail_gunlock: gfs2_glock_dq(ghs); -- 1.5.5.1