greybus: set result in gb_operation_response_send()

Change gb_operation_response_send() so it takes an errno to assign
as an operation's result.  This emphasizes that setting the result
should be the last thing done to an incoming operation before
sending its response.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
This commit is contained in:
Alex Elder 2014-12-02 08:30:36 -06:00 committed by Greg Kroah-Hartman
parent 0cffcac305
commit d2d2c0fe70
2 changed files with 7 additions and 2 deletions

View File

@ -642,8 +642,13 @@ int gb_operation_request_send(struct gb_operation *operation,
/*
* Send a response for an incoming operation request.
*/
int gb_operation_response_send(struct gb_operation *operation)
int gb_operation_response_send(struct gb_operation *operation, int errno)
{
/* Record the result */
if (!gb_operation_result_set(operation, errno)) {
pr_err("request result already set\n");
return -EIO; /* Shouldn't happen */
}
gb_operation_destroy(operation);
return 0;

View File

@ -100,7 +100,7 @@ static inline void gb_operation_destroy(struct gb_operation *operation)
int gb_operation_request_send(struct gb_operation *operation,
gb_operation_callback callback);
int gb_operation_response_send(struct gb_operation *operation);
int gb_operation_response_send(struct gb_operation *operation, int errno);
void gb_operation_cancel(struct gb_operation *operation, int errno);