Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Julien Brunel and committed by
Steven Whitehouse
bd1eb881 dff52574

+1 -3
+1 -3
fs/gfs2/inode.c
··· 1033 1033 1034 1034 if (bh) 1035 1035 brelse(bh); 1036 - if (!inode) 1037 - return ERR_PTR(-ENOMEM); 1038 1036 return inode; 1039 1037 1040 1038 fail_gunlock2: 1041 1039 gfs2_glock_dq_uninit(ghs + 1); 1042 - if (inode) 1040 + if (inode && !IS_ERR(inode)) 1043 1041 iput(inode); 1044 1042 fail_gunlock: 1045 1043 gfs2_glock_dq(ghs);