From 54ec3673cc319a5646c21a87bbf41198b1f462b5 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Tue, 7 Jul 2009 23:01:28 +0100 Subject: [ata] Make ATA command issuing partially asynchronous Move the icky call to step() from aoe.c to ata.c; this takes it at least one step further away from where it really doesn't belong. Unfortunately, AoE has the ugly aoe_discover() mechanism which means that we still have a step() loop in aoe.c for now; this needs to be replaced at some future point. --- src/net/aoe.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) (limited to 'src/net/aoe.c') diff --git a/src/net/aoe.c b/src/net/aoe.c index 9e6a99e28..f274ddf51 100644 --- a/src/net/aoe.c +++ b/src/net/aoe.c @@ -68,6 +68,7 @@ static void aoe_done ( struct aoe_session *aoe, int rc ) { /* Record overall command status */ if ( aoe->command ) { aoe->command->cb.cmd_stat = aoe->status; + aoe->command->rc = rc; aoe->command = NULL; } @@ -356,7 +357,6 @@ static int aoe_command ( struct ata_device *ata, struct ata_command *command ) { struct aoe_session *aoe = container_of ( ata->backend, struct aoe_session, refcnt ); - int rc; aoe->command = command; aoe->status = 0; @@ -365,15 +365,9 @@ static int aoe_command ( struct ata_device *ata, aoe_send_command ( aoe ); - aoe->rc = -EINPROGRESS; - while ( aoe->rc == -EINPROGRESS ) - step(); - rc = aoe->rc; - - return rc; + return 0; } - /** * Issue AoE config query for AoE target discovery * -- cgit v1.2.3-55-g7522