greybus: operation: complete operations on cancellation

Make sure to call the operation completion callback also when the
operation is being cancelled.

The completion callback may need to release resources allocated at
submission and the driver should be informed that the operation has
failed due to cancellation.

Signed-off-by: Johan Hovold <johan@hovoldconsulting.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/drivers/staging/greybus/operation.c b/drivers/staging/greybus/operation.c
index 5e8ea02..1e181d5 100644
--- a/drivers/staging/greybus/operation.c
+++ b/drivers/staging/greybus/operation.c
@@ -901,8 +901,7 @@
 	} else {
 		if (gb_operation_result_set(operation, errno)) {
 			gb_message_cancel(operation->request);
-			gb_operation_put_active(operation);
-			gb_operation_put(operation);
+			queue_work(gb_operation_workqueue, &operation->work);
 		}
 	}