diff options
Diffstat (limited to 'fs/gfs2/inode.c')
-rw-r--r-- | fs/gfs2/inode.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 0d6831a40565..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) | |||
43 | struct gfs2_inode *ip = GFS2_I(inode); | 43 | struct gfs2_inode *ip = GFS2_I(inode); |
44 | struct gfs2_inum_host *inum = opaque; | 44 | struct gfs2_inum_host *inum = opaque; |
45 | 45 | ||
46 | if (ip->i_num.no_addr == inum->no_addr) | 46 | if (ip->i_num.no_addr == inum->no_addr && |
47 | inode->i_private != NULL) | ||
47 | return 1; | 48 | return 1; |
48 | 49 | ||
49 | return 0; | 50 | return 0; |
@@ -61,13 +62,13 @@ static int iget_set(struct inode *inode, void *opaque) | |||
61 | 62 | ||
62 | struct inode *gfs2_ilookup(struct super_block *sb, struct gfs2_inum_host *inum) | 63 | struct inode *gfs2_ilookup(struct super_block *sb, struct gfs2_inum_host *inum) |
63 | { | 64 | { |
64 | return ilookup5(sb, (unsigned long)inum->no_formal_ino, | 65 | return ilookup5(sb, (unsigned long)inum->no_addr, |
65 | iget_test, inum); | 66 | iget_test, inum); |
66 | } | 67 | } |
67 | 68 | ||
68 | static struct inode *gfs2_iget(struct super_block *sb, struct gfs2_inum_host *inum) | 69 | static struct inode *gfs2_iget(struct super_block *sb, struct gfs2_inum_host *inum) |
69 | { | 70 | { |
70 | return iget5_locked(sb, (unsigned long)inum->no_formal_ino, | 71 | return iget5_locked(sb, (unsigned long)inum->no_addr, |
71 | iget_test, iget_set, inum); | 72 | iget_test, iget_set, inum); |
72 | } | 73 | } |
73 | 74 | ||