From 531ba156de326210e4807b701183eaf2f506cf2a Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Fri, 10 Oct 2025 18:13:16 +0200 Subject: [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 --- src/server/uplink.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/server/uplink.c') 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; -- cgit v1.2.3-55-g7522