mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00
dm vdo: don't refer to dedupe_context after releasing it
Clear the dedupe_context pointer in a data_vio whenever ownership of the context is lost, so that vdo can't examine it accidentally. Signed-off-by: Ken Raeburn <raeburn@redhat.com> Signed-off-by: Matthew Sakai <msakai@redhat.com> Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
This commit is contained in:
parent
47ac09b91b
commit
0808ebf2f8
1 changed files with 3 additions and 0 deletions
|
@ -729,6 +729,7 @@ static void process_update_result(struct data_vio *agent)
|
||||||
!change_context_state(context, DEDUPE_CONTEXT_COMPLETE, DEDUPE_CONTEXT_IDLE))
|
!change_context_state(context, DEDUPE_CONTEXT_COMPLETE, DEDUPE_CONTEXT_IDLE))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
agent->dedupe_context = NULL;
|
||||||
release_context(context);
|
release_context(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1648,6 +1649,7 @@ static void process_query_result(struct data_vio *agent)
|
||||||
|
|
||||||
if (change_context_state(context, DEDUPE_CONTEXT_COMPLETE, DEDUPE_CONTEXT_IDLE)) {
|
if (change_context_state(context, DEDUPE_CONTEXT_COMPLETE, DEDUPE_CONTEXT_IDLE)) {
|
||||||
agent->is_duplicate = decode_uds_advice(context);
|
agent->is_duplicate = decode_uds_advice(context);
|
||||||
|
agent->dedupe_context = NULL;
|
||||||
release_context(context);
|
release_context(context);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2321,6 +2323,7 @@ static void timeout_index_operations_callback(struct vdo_completion *completion)
|
||||||
* send its requestor on its way.
|
* send its requestor on its way.
|
||||||
*/
|
*/
|
||||||
list_del_init(&context->list_entry);
|
list_del_init(&context->list_entry);
|
||||||
|
context->requestor->dedupe_context = NULL;
|
||||||
continue_data_vio(context->requestor);
|
continue_data_vio(context->requestor);
|
||||||
timed_out++;
|
timed_out++;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue