diff options
author | Steven Whitehouse <swhiteho@redhat.com> | 2011-01-18 15:49:08 +0100 |
---|---|---|
committer | Steven Whitehouse <swhiteho@redhat.com> | 2011-01-18 15:49:08 +0100 |
commit | 24d9765fc18c7838ccdbb0d71fb706321d9b824c (patch) | |
tree | 75875b69c1bb694d2ad5e1ab19f278bf7d3a8acc /fs/gfs2/inode.h | |
parent | GFS2: remove iopen glocks from cache on failed deletes (diff) | |
download | linux-24d9765fc18c7838ccdbb0d71fb706321d9b824c.tar.xz linux-24d9765fc18c7838ccdbb0d71fb706321d9b824c.zip |
GFS2: Fix error path in gfs2_lookup_by_inum()
In the (impossible, except if there is fs corruption) error path
in gfs2_lookup_by_inum() if the call to gfs2_inode_refresh()
fails, it was leaving the function by calling iput() rather
than iget_failed(). This would cause future lookups of the same
inode to block forever.
This patch fixes the problem by moving the call to gfs2_inode_refresh()
into gfs2_inode_lookup() where iget_failed() is part of the error path
already. Also this cleans up some unreachable code and makes
gfs2_set_iop() static.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/inode.h')
-rw-r--r-- | fs/gfs2/inode.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/fs/gfs2/inode.h b/fs/gfs2/inode.h index 732a183efdb3..3e00a66e7cbd 100644 --- a/fs/gfs2/inode.h +++ b/fs/gfs2/inode.h @@ -96,7 +96,6 @@ err: return -EIO; } -extern void gfs2_set_iop(struct inode *inode); extern struct inode *gfs2_inode_lookup(struct super_block *sb, unsigned type, u64 no_addr, u64 no_formal_ino); extern struct inode *gfs2_lookup_by_inum(struct gfs2_sbd *sdp, u64 no_addr, |