瀏覽代碼

[GFS2] Fix bz 229831, lookup returns wrong inode

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>
Steven Whitehouse 18 年之前
父節點
當前提交
1be3867955
共有 1 個文件被更改,包括 2 次插入1 次删除
  1. 2 1
      fs/gfs2/inode.c

+ 2 - 1
fs/gfs2/inode.c

@@ -43,7 +43,8 @@ static int iget_test(struct inode *inode, void *opaque)
 	struct gfs2_inode *ip = GFS2_I(inode);
 	struct gfs2_inode *ip = GFS2_I(inode);
 	struct gfs2_inum_host *inum = opaque;
 	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 1;
 
 
 	return 0;
 	return 0;