| To: | linux-kernel@xxxxxxxxxxxxxxx |
|---|---|
| Subject: | [ 21/89] xfs: Fix possible use-after-free with AIO |
| From: | Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> |
| Date: | Fri, 1 Feb 2013 14:07:36 +0100 |
| Cc: | Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>, stable@xxxxxxxxxxxxxxx, Jan Kara <jack@xxxxxxx>, Ben Myers <bpm@xxxxxxx>, xfs@xxxxxxxxxxx |
| Delivered-to: | xfs@xxxxxxxxxxx |
| In-reply-to: | <20130201130207.444989281@xxxxxxxxxxxxxxxxxxx> |
| References: | <20130201130207.444989281@xxxxxxxxxxxxxxxxxxx> |
| User-agent: | quilt/0.60-1 |
3.7-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jan Kara <jack@xxxxxxx>
commit 4b05d09c18d9aa62d2e7fb4b057f54e5a38963f5 upstream.
Running AIO is pinning inode in memory using file reference. Once AIO
is completed using aio_complete(), file reference is put and inode can
be freed from memory. So we have to be sure that calling aio_complete()
is the last thing we do with the inode.
Signed-off-by: Jan Kara <jack@xxxxxxx>
CC: xfs@xxxxxxxxxxx
CC: Ben Myers <bpm@xxxxxxx>
Reviewed-by: Ben Myers <bpm@xxxxxxx>
Signed-off-by: Ben Myers <bpm@xxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
fs/xfs/xfs_aops.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
@@ -86,11 +86,11 @@ xfs_destroy_ioend(
}
if (ioend->io_iocb) {
+ inode_dio_done(ioend->io_inode);
if (ioend->io_isasync) {
aio_complete(ioend->io_iocb, ioend->io_error ?
ioend->io_error : ioend->io_result, 0);
}
- inode_dio_done(ioend->io_inode);
}
mempool_free(ioend, xfs_ioend_pool);
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | Re: Xfs fails in xfstests 013, Lukáš Czerner |
|---|---|
| Next by Date: | Re: Xfs fails in xfstests 013, Lukáš Czerner |
| Previous by Thread: | Re: Xfs fails in xfstests 013, Lukáš Czerner |
| Next by Thread: | Re: [PATCH RFC 0/2] fix spinlock recursion on xa_lock in xfs_buf_item_push, Brian Foster |
| Indexes: | [Date] [Thread] [Top] [All Lists] |