diff options
author | Julien Brunel <brunel@diku.dk> | 2008-09-01 10:51:22 +0200 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2008-09-05 14:19:44 +0100 |
commit | bd1eb8818cc2c8ddab86be027ab43fb852942704 (patch) | |
tree | b072daf0c29f929217acc7a589b48c615da6b238 /fs/gfs2/inode.c | |
parent | dff5257473ca1e05002809809f51f858e9a966fc (diff) | |
download | op-kernel-dev-bd1eb8818cc2c8ddab86be027ab43fb852942704.zip op-kernel-dev-bd1eb8818cc2c8ddab86be027ab43fb852942704.tar.gz |
GFS2: Use an IS_ERR test rather than a NULL test
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/)
// <smpl>
@match_bad_null_test@
expression x, E;
statement S1,S2;
@@
x = gfs2_inode_lookup(...)
... when != x = E
* if (x != NULL)
S1 else S2
// </smpl>
Signed-off-by: Julien Brunel <brunel@diku.dk>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 4 |
1 files changed, 1 insertions, 3 deletions
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); |