]> nv-tegra.nvidia Code Review - linux-2.6.git/commit - fs/gfs2
GFS2: Fix inode allocation error path
authorSteven Whitehouse <swhiteho@redhat.com>
Tue, 2 Aug 2011 12:17:27 +0000 (13:17 +0100)
committerSteven Whitehouse <swhiteho@redhat.com>
Fri, 21 Oct 2011 11:39:23 +0000 (12:39 +0100)
commit40ac218f52aa5cac7dc8082f28b61c8b2b29373c
tree34e86173a2554b738f0141a1c38ffc3191d2f228
parent1d4ec642d9f00d4c531b1a4ae0613091ec1f8e9b
GFS2: Fix inode allocation error path

If we have got far enough through the inode allocation code
path that an inode has already been allocated, then we must
call iput to dispose of it, if an error occurs during a
later part of the process. This will always be the final iput
since there will be no other references to the inode.

Unlike when the inode has been unlinked, its block state will
be GFS2_BLKST_INODE rather than GFS2_BLKST_UNLINKED so we need
to skip the test in ->evict_inode() for this one case in order
to ensure that it will be deallocated correctly. This patch adds
a new flag in order to ensure that this will happen correctly.

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