xfs: fix a use after free in xfs_end_io_direct_write
authorChristoph Hellwig <hch@infradead.org>
Tue, 13 Sep 2011 22:26:00 +0000 (22:26 +0000)
committerAlex Elder <aelder@sgi.com>
Wed, 14 Sep 2011 13:56:35 +0000 (08:56 -0500)
commit2d2422aebc037095f77551119f795449d29befed
tree1786857f965cb63887c2bd7fd8dd08aabaefab4a
parent003f6c9df54970d8b19578d195b3e2b398cdbde2
xfs: fix a use after free in xfs_end_io_direct_write

There is a window in which the ioend that we call inode_dio_wake on
in xfs_end_io_direct_write is already free.  Fix this by storing
the inode pointer in a local variable.

This is a fix for the regression introduced in 3.1-rc by
"fs: move inode_dio_done to the end_io handler".

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Alex Elder <aelder@sgi.com>
fs/xfs/xfs_aops.c