[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH v2 01/11] blockjob: fix dead pointer in txn list
From: |
John Snow |
Subject: |
[Qemu-block] [PATCH v2 01/11] blockjob: fix dead pointer in txn list |
Date: |
Fri, 30 Sep 2016 18:00:39 -0400 |
From: Vladimir Sementsov-Ogievskiy <address@hidden>
Though it is not intended to be reached through normal circumstances,
if we do not gracefully deconstruct the transaction QLIST, we may wind
up with stale pointers in the list.
The rest of this series attempts to address the underlying issues,
but this should fix list inconsistencies.
Signed-off-by: Vladimir Sementsov-Ogievskiy <address@hidden>
Tested-by: John Snow <address@hidden>
Reviewed-by: John Snow <address@hidden>
[Rewrote commit message. --js]
Signed-off-by: John Snow <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: John Snow <address@hidden>
---
blockjob.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/blockjob.c b/blockjob.c
index a167f96..13e7134 100644
--- a/blockjob.c
+++ b/blockjob.c
@@ -220,6 +220,7 @@ static void block_job_completed_single(BlockJob *job)
}
job->cb(job->opaque, job->ret);
if (job->txn) {
+ QLIST_REMOVE(job, txn_list);
block_job_txn_unref(job->txn);
}
block_job_unref(job);
--
2.7.4
- [Qemu-block] [PATCH v2 00/11] blockjobs: Fix transactional race condition, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 01/11] blockjob: fix dead pointer in txn list,
John Snow <=
- [Qemu-block] [PATCH v2 02/11] blockjob: centralize QMP event emissions, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 03/11] Blockjobs: Internalize user_pause logic, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 04/11] blockjobs: Always use block_job_get_aio_context, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 06/11] blockjobs: fix documentation, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 07/11] blockjob: add .clean property, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 05/11] blockjobs: split interface into public/private, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 10/11] blockjob: refactor backup_start as backup_job_create, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 08/11] blockjob: add .start field, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 09/11] blockjob: add block_job_start, John Snow, 2016/09/30
- [Qemu-block] [PATCH v2 11/11] iotests: add transactional failure race test, John Snow, 2016/09/30