| To: | Al Viro <viro@xxxxxxxxxxxxxxxxxx> |
|---|---|
| Subject: | [PATCH 4/4] fs: Fix possible use-after-free with AIO |
| From: | Jan Kara <jack@xxxxxxx> |
| Date: | Wed, 30 Jan 2013 00:28:01 +0100 |
| Cc: | linux-fsdevel@xxxxxxxxxxxxxxx, xfs@xxxxxxxxxxx, linux-ext4@xxxxxxxxxxxxxxx, ocfs2-devel@xxxxxxxxxxxxxx, Jan Kara <jack@xxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, Jens Axboe <axboe@xxxxxxxxx>, Jeff Moyer <jmoyer@xxxxxxxxxx>, stable@xxxxxxxxxxxxxxx |
| Delivered-to: | xfs@xxxxxxxxxxx |
| In-reply-to: | <1359502081-20240-1-git-send-email-jack@xxxxxxx> |
| References: | <1359502081-20240-1-git-send-email-jack@xxxxxxx> |
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.
CC: Christoph Hellwig <hch@xxxxxxxxxxxxx>
CC: Jens Axboe <axboe@xxxxxxxxx>
CC: Jeff Moyer <jmoyer@xxxxxxxxxx>
CC: stable@xxxxxxxxxxxxxxx
Acked-by: Jeff Moyer <jmoyer@xxxxxxxxxx>
Signed-off-by: Jan Kara <jack@xxxxxxx>
---
fs/direct-io.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/direct-io.c b/fs/direct-io.c
index cf5b44b..f853263 100644
--- a/fs/direct-io.c
+++ b/fs/direct-io.c
@@ -261,9 +261,9 @@ static ssize_t dio_complete(struct dio *dio, loff_t offset,
ssize_t ret, bool is
dio->end_io(dio->iocb, offset, transferred,
dio->private, ret, is_async);
} else {
+ inode_dio_done(dio->inode);
if (is_async)
aio_complete(dio->iocb, ret, 0);
- inode_dio_done(dio->inode);
}
return ret;
--
1.7.1
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [PATCH 2/4] xfs: Fix possible use-after-free with AIO, Jan Kara |
|---|---|
| Next by Date: | [PATCH 1/4] ext4: Fix possible use-after-free with AIO, Jan Kara |
| Previous by Thread: | Re: [PATCH 2/4] xfs: Fix possible use-after-free with AIO, Ben Myers |
| Next by Thread: | [PATCH 1/4] ext4: Fix possible use-after-free with AIO, Jan Kara |
| Indexes: | [Date] [Thread] [Top] [All Lists] |