[GFS2] Fix bz 229831, lookup returns wrong inode
authorSteven Whitehouse <swhiteho@redhat.com>
Thu, 1 Mar 2007 10:00:53 +0000 (10:00 +0000)
committerSteven Whitehouse <swhiteho@redhat.com>
Wed, 7 Mar 2007 19:01:53 +0000 (14:01 -0500)
The following patch fixes Red Hat bz 229831. Without this patch its
possible for the wrong inode to be returned in certain cases. It is a
pretty unusual event, so that its taken some time to track down. Thanks
and due to Josef Whiter who did a lot of the testing required to thrack
this down and fix it.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
fs/gfs2/inode.c

index 902dd814211234b560154cefad3901600a595378..df0b8b3018b934e72a30830b5a2936498c969be9 100644 (file)
@@ -43,7 +43,8 @@ static int iget_test(struct inode *inode, void *opaque)
        struct gfs2_inode *ip = GFS2_I(inode);
        struct gfs2_inum_host *inum = opaque;
 
-       if (ip->i_num.no_addr == inum->no_addr)
+       if (ip->i_num.no_addr == inum->no_addr &&
+           inode->i_private != NULL)
                return 1;
 
        return 0;