diff options
| author | Simon Rettberg | 2025-10-10 18:13:16 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2025-12-09 15:33:20 +0100 |
| commit | 531ba156de326210e4807b701183eaf2f506cf2a (patch) | |
| tree | 0e732acacce0bde31e95bdf4e2bb272d39ecdd25 /src/server/uplink.c | |
| parent | [SERVER] iscsi: Implement relaying requests to uplink servers (diff) | |
| download | dnbd3-531ba156de326210e4807b701183eaf2f506cf2a.tar.gz dnbd3-531ba156de326210e4807b701183eaf2f506cf2a.tar.xz dnbd3-531ba156de326210e4807b701183eaf2f506cf2a.zip | |
[SERVER] iscsi refactor: First working version
Work towards simplifying the iscsi implementation has begun. Goals are:
- Simpler and easier to understand resource/lifecycle management of
allocations
- Single-threaded architecture, making locking unnecessary
- Moving as many allocations as possible to the stack
- Making the call-stack more shallow for easier tracking of code flow
Diffstat (limited to 'src/server/uplink.c')
| -rw-r--r-- | src/server/uplink.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/server/uplink.c b/src/server/uplink.c index 8a83124..e05d27c 100644 --- a/src/server/uplink.c +++ b/src/server/uplink.c @@ -228,12 +228,12 @@ static void freeUplinkStruct(ref *ref) * Remove given client from uplink request queue * Locks on: uplink.queueLock */ -void uplink_removeEntry(dnbd3_uplink_t *uplink, void *data, uplink_callback callback) +void uplink_removeEntry(dnbd3_uplink_t *uplink, void *data) { mutex_lock( &uplink->queueLock ); for ( dnbd3_queue_entry_t *it = uplink->queue; it != NULL; it = it->next ) { for ( dnbd3_queue_client_t **cit = &it->clients; *cit != NULL; ) { - if ( (**cit).data == data && (**cit).callback == callback ) { + if ( (**cit).data == data ) { (*(**cit).callback)( (**cit).data, (**cit).handle, 0, 0, NULL ); dnbd3_queue_client_t *entry = *cit; *cit = (**cit).next; |
