summaryrefslogtreecommitdiffstats
path: root/fs/gfs2
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2007-03-01 10:00:53 +0000
committerSteven Whitehouse <swhiteho@redhat.com>2007-03-07 14:01:53 -0500
commit1be3867955731b5cb2dc14060cc46f0882e87873 (patch)
tree6b62524ccc4809a8f60c3eda3f9066529891c72a /fs/gfs2
parentcad5b9392754910ee7dbe551eb004010a864c882 (diff)
downloadlinux-stable-1be3867955731b5cb2dc14060cc46f0882e87873.tar.gz
linux-stable-1be3867955731b5cb2dc14060cc46f0882e87873.tar.bz2
linux-stable-1be3867955731b5cb2dc14060cc46f0882e87873.zip
[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>
Diffstat (limited to 'fs/gfs2')
-rw-r--r--fs/gfs2/inode.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c
index 902dd8142112..df0b8b3018b9 100644
--- a/fs/gfs2/inode.c
+++ b/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_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;